如何从Laravel中的Array中提取值?

时间:2019-07-17 07:37:16

标签: php laravel

让我们说我有一个[{"id":21},{"id":22}]数组,它是来自此的:

$schedules = [];
    foreach ($routes as $route) {
        $schedules[] =Schedule::select('id')
                        ->whereIn('route_id', $route)
                        ->latest()
                        ->first();  
    }

所以,我想像这样[21,22]从中提取值,所以我这样做是这样的:

$values = $schedules->pluck('id')->toArray();

此错误显示

  

在数组上调用成员函数pluck()

3 个答案:

答案 0 :(得分:2)

要使用该代码来实现所需的功能,可以使用array_map

$values = array_map(function ($item) {
    return $item->id;
}, $schedules);

或者,您可以通过使用id->first()->id来简单地获得value('id')

foreach ($routes as $route) {
    $schedules[] =Schedule::select('id')
                    ->whereIn('route_id', $route)
                    ->latest()
                    ->value('id');  
}

答案 1 :(得分:1)

您可以先收集它,然后再使用pluck

我假设您有以下数据

$schedules = [
    ["id" => 21],
    ["id" => 22]
];
return collect($schedules)->pluck('id')->toArray();

Demo here

答案 2 :(得分:0)

使用array_column仅获取值。

$values = array_column($schedules->pluck('id')->toArray(),'id');