获取数组的id字段

Get the id field of an array

我有一个关于 Kohana 的请求,其中 returns 一个数组,就像这样:

$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 但它说

Trying to get property of non-object

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

Undefined index: id

有人可以帮我获得这个 ID 吗?提前致谢!

如您所见,结果是一个数组,其中就是您想要的对象。所以你必须使用$id_environment[0]["id"]才能得到它。

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

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

您还可以使用:

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

如果 'id' 未找到,get() 中的第二个参数就是您想要的 returned(如果您不包含第二个参数,它将 return null 如果 'id' 未找到)。

编辑

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