获取数组的id字段

时间:2016-04-12 13:00:35

标签: php kohana

我有一个请求Kohana返回一个数组,就像这样:

$query = DB::select()
    ->from('environnement')
    ->where('utilisateur_id','=', 'd83fa9a71cc1c414011cc1dbeb270026') 
    ->where('region_id','=', $region_selectionnee);

$id_env = $query->execute();

return $id_env->as_array();

我在控制器中调用请求,并var_dump调用结果。我明白了:

array(1) { 
    [0]=> array(4) { 
        ["id"]=> string(32) "d83fa9a71cc1c414011cc1de74270027" 
        ["courant"]=> string(1) "0" 
        ["region_id"]=> string(1) "1" 
        ["utilisateur_id"]=> string(32) "d83fa9a71cc1c414011cc1dbeb270026" 
    } 
}

现在,我想获得此阵列的id字段,但我不知道该怎么做。我尝试使用$id_environnement->id,但它说

  

尝试获取非对象的属性

我也试过了$id_environnement["id"],但它说:

  

未定义的索引:id

有人可以帮我拿到这个ID吗?提前谢谢!

3 个答案:

答案 0 :(得分:2)

如您所见,结果是数组,其中是您想要的对象。因此,您必须使用$id_environment[0]["id"]来获取它。

答案 1 :(得分:0)

Arr::path($id_environment, '0.id')

如果数组键不存在,此方法不会引发异常

答案 2 :(得分:0)

您也可以使用:

$id = DB::select('id')
  ->from('environnement')
  ->where('utilisateur_id','=', 'd83fa9a71cc1c414011cc1dbeb270026') 
  ->where('region_id','=', $region_selectionnee)
  ->limit(1)
  ->execute()
  ->get('id', false);

如果get()中找不到'id',那么null中的第二个参数就是你要返回的内容(如果你没有包含第二个参数,如果{{1},它将返回'id'找不到)。

修改

您不必在'id'中指定select(),但如果您执行指定一个或多个字段,get()只能从指定的字段。