@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);
}
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Direct Line - Россия Тольятти
от 60 000 до 90 000 руб.
Fresh-RaftLab Москва
от 100 000 до 150 000 руб.
от 90 000 до 140 000 руб.