【问题标题】:Get the id field of an array获取数组的id字段
【发布时间】:2016-04-12 13:00:34
【问题描述】:

我有一个与 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吗?提前致谢!

【问题讨论】:

    标签: php kohana


    【解决方案1】:

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

    【讨论】:

    • 它再次显示“尝试获取非对象的属性”:/
    • 是的,就是这样!谢谢 !! :)
    【解决方案2】:
    Arr::path($id_environment, '0.id')
    

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

    【讨论】:

    • 太棒了!我可能会用它!谢谢:)
    【解决方案3】:

    你也可以使用:

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

    get() 中的第二个参数是您希望在未找到 'id' 时返回的值(如果您不包含第二个参数,如果未找到 'id',它将返回 null)。

    编辑

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2020-04-05
      相关资源
      最近更新 更多