Задать вопрос
part_os
@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);
}
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы