Код: Выделить всё
$c=Media::all()->collect();
// first set of commands
$filtered=Media::all()->filter(function($item,$k){
return in_array("mp4",$item->extensions->toArray();
})->count(); // 97
$cFiltered=$c->filter(function($item,$k){
return in_array("mp4",$item->extensions->toArray();
})->count(); // 96
Media::all()->count()==$c->count(); // true
$ct=Media::all()->count(); // 173
// Now - additional weirdness
// same commands but changed filtered variable name
$newFiltered=Media::all()->filter(function($item,$k){
return in_array("mp4",$item->extensions->toArray();
})->count(); // 100
$newCFiltered=$c->filter(function($item,$k){
return in_array("mp4",$item->extensions->toArray();
})->count(); // 83
Media::all()->count()==$c->count(); // true
Media::all()->count()==$ct; // true
Я вообще не разработчик Laravel и не могу понять это.
Может ли кто-нибудь объяснить, что здесь происходит?
примечание: Это Laravel 8 с php-7.4. Я выполняю код в оболочке Artisan Tinker.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ollections
Мобильная версия