Разные ответы при фильтрации моделей и коллекцийPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Разные ответы при фильтрации моделей и коллекций

Сообщение Anonymous »

Я уверен, что здесь есть очевидное объяснение, но при фильтрации коллекций я получаю странно разные ответы.

Код: Выделить всё

    $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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»