@part_os

Как избавиться от array_filter и array_shift?

привет, подскажите красивое решение как избавиться от такой выборки.
На входе получаем коллекцию объектов. После этого необходимо из неё выбрать объект по совпадающему атрибуту.
Для чего это было написано, что бы снизить нагрузку на БД, и на каждой итерации foreach не лезть в базу. В allData - 57 элементов, а collection - 37.
Такой фильтрации сейчас в методе порядком 7, и снизило загрузку с 8 сек до 1. Но выглядит это не очень. Есть у кого идеи?
foreach ($allData as $data) {
    $id = $data->id;
    $items= array_filter($collection->all() , function ($row) use ($id) {
            return $row->attribute === $id;
        });
    $item= array_shift($items);
}
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы