Let just say i have this [{"id":21},{"id":22}]
array coming up from this :
$schedules = [];
foreach ($routes as $route) {
$schedules[] =Schedule::select('id')
->whereIn('route_id', $route)
->latest()
->first();
}
So, i want to extract the value from it like this [21,22]
, so i did it like this:
$values = $schedules->pluck('id')->toArray();
this showing this error
Call to a member function pluck() on array
To achieve what you're after with the code you have you can use array_map
:
$values = array_map(function ($item) {
return $item->id;
}, $schedules);
Alternatively, you could simply get the id
initially by either using ->first()->id
or value('id')
:
foreach ($routes as $route) {
$schedules[] =Schedule::select('id')
->whereIn('route_id', $route)
->latest()
->value('id');
}
Use array_column to get just the values.
$values = array_column($schedules->pluck('id')->toArray(),'id');
You can first make a collection of it first and then use pluck
.
I assume you have the following data
$schedules = [
["id" => 21],
["id" => 22]
];
return collect($schedules)->pluck('id')->toArray();