如何从 Laravel 5 中的数组变量中提取数组项


How to extract an array item from an array variable in Laravel 5?

我是Laravel的新手,现在使用Laravel版本5.2。

我有这组数组:

    {
        "id": 2,
        "title": 'sample',
        "question_index": 1,
        "question": "Hope you could help me buddy.",
        "data": [
                    {
                        "id": 1,
                        "answerswer": 'yes',
                    }
                ]
    }

数组是使用以下雄辩查询创建的:

$exam_data = $this->template->where('id', $id)
                            ->with('data')
                            ->get();

现在我想使用 Laravel 5 检索该数组中的"数据"数组。

我尝试了以下代码,但无济于事...

$user_data = $exam_data->data;
$user_data = $exam_data['data'];
$user_data = $exam_data->get('data');

虽然我可以使用这个来摘它:

$user_data = $exam_data->pluck('data');

有这个结果(我不知道为什么,但我不满意):

[
    [
        {
            "id": 1,
            "answerswer": 'yes',
        }
    ]
]

有什么方法或方法可以用来检索"data"数组吗?

比如:

$user_data = $exam_data->data;

访问"答案"字段怎么样?

$user_data = $exam_data->data->answer;
Is this possible?

感谢任何意见或建议。 谢谢!

$exam_data = $this->template->where('id', $id)
                            ->with('data')
                            ->get();

返回 M条记录Collection,如下所示:

Collection [
  0 => Collection,
  1 => Collection,
]

这就是为什么你不能直接从$exam_data访问"数据",这就是->pluck()为你所做的。

pluck()的作用与:

$filtered = [];
foreach ($exam_data as $exam) {
  $filtered[] = $exam->data;
}

如果你dd($filtered)你就会得到你所追求的。

但是,如果您期望单个记录,则可以使用 ->first() 而不是 ->get() ,后者返回单个集合,您可以在其中访问数据关系:

$exam_data = ..... ->first();
$data = $exam_data->data;