【问题标题】:How to get a value from multi dimension json array in laravel如何从laravel中的多维json数组中获取值
【发布时间】:2018-06-23 12:33:27
【问题描述】:

我正在开发一个 RESTfull API,它可以从 firebase 数据库中获取数据 我成功地检索到完全一样的数据

{
"Admin": {
    "-L-ck6q9elghYywXHneg": {
        "accepted": false,
        "date": "7/12/2017",
        "hour": "4:32",
        "numberOfPeople": "3",
        "tableInfo": ""
    }
},
"Guest": {
    "-KvJja_r0beLtdoRc29f": {
        "accepted": true,
        "date": "1/10/2017",
        "hour": "0:43",
        "numberOfPeople": "",
        "tableInfo": ""
    }
}

}

现在,我想在不知道“Admin”或“Guest”键的情况下访问两条记录中的“accepted”字段,如何做到这一点?

我试过了

foreach ($users as $user) {
        $data[$counter]['accepted'] = $user->accepted;
        $counter++;
    }

但是没有成功

【问题讨论】:

  • 应该使用-L-ck6q9elghYywXHneg 键。
  • 这个键是未知的,我的意思是每个用户都会改变

标签: php json laravel firebase laravel-5


【解决方案1】:

刚刚对此进行了测试,与您的数据完美配合:

$users = json_decode($users, true);
foreach ($users as $user) {
   $data[$counter]['accepted'] = array_first($user)['accepted'];
   $counter++;
}

【讨论】:

  • 你太棒了,你让我很开心,现在它的工作就像一个魅力谢谢
【解决方案2】:

试试$user[0]->接受

foreach ($users as $user) {
    $data[$counter]['accepted'] = $user[0]->accepted;
    $counter++;
}

【讨论】:

  • 它会抛出这个错误Cannot use object of type stdClass as array
  • 你的数据是 JSON 对象还是 JSON 数组?
  • 是json对象
【解决方案3】:

这是一个对象,所以这样做

foreach ($users as $key=>$user) { //changed this line
    $data[$counter]['accepted'] = $user->accepted;
    $counter++;
}

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多