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

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();

Demo here