如何使用Codeigniter获取Array值

时间:2012-02-24 19:49:50

标签: php arrays codeigniter session

我有这个选择

    $this->db->select('modulo_regra.regra_descricao');
    $this->db->from('modulo_regra');
    $this->db->where('modulo_regra.modulo_regra_id', id);
    $query = $this->db->get();

中返回给我2个元素
  return $query->result_array();

然后我把返回放在一个数组

   $permissoes =array('areas' => $this->Regra_model->user_has($regra['regra_id']));

然后我会议的$ permissoes

   $this->session->set_userdata($permissoes);

所以真正的问题来了。 当我从会话

加载值时
   $permissoes = array('areas');
   $permissoes = $this->session->userdata('areas'); 

这是它的内容:

array(2) ([0] => array(1) ([regra_descricao] => (string) clientes_cadastrar)
          [1] => array(1) ([regra_descricao] => (string) clientes_visualizar))

所以我无法使用in_array()或其他方式对其进行验证...我想知道是否有如何将此数组中的值与另一个变量进行比较

喜欢

if(in_array('clientes_cadastrar',$permissoes)){}

我是新来的......很抱歉我问的方式。

2 个答案:

答案 0 :(得分:3)

不要把整个数组放回去,即

foreach ($query->result() as $row)
{
   $return[] = $row->regra_descricao;
}
return $return;

THEN

您可以轻松找到使用:

if(in_array('clientes_cadastrar',$permissoes[**'areas'**])){}

希望这会有所帮助

答案 1 :(得分:1)

你可以使用相同的范围。

 $this->db->select('modulo_regra.regra_descricao');
     $this->db->from('modulo_regra');
     $this->db->where('modulo_regra.modulo_regra_id', id);
     $query = $this->db->get();

    foreach ($query->result() as $row)
    {
       $permissoes = array['areas'];
    }

    $this->session->set_userdata($permissoes);