#php #mysql #laravel #collections
#php #mysql #laravel #Коллекции
Вопрос:
База данных, которую я использую: Mysql
Я хочу перебрать строки таблицы и проверить, находятся ли два значения в этой строке внутри коллекции (laravel).
Моя настройка:
У меня есть массив, который выглядит следующим образом
[
['foo_id' => 1, 'bar_id' => 31],
['foo_id' => 1, 'bar_id' => 55],
['foo_id' => 2, 'bar_id' => 32],
]
И таблица базы данных, которая выглядит следующим образом.
table
---- ----- -------
| id | foo| bar |
---- ----- -------
| 1 | 1 | 31 |
---- ----- -------
| 2 | 1 | 55 |
---- ----- -------
| 3 | 2 | 32 |
---- ----- -------
| 4 | 3 | 87 |
---- ----- -------
| . | . | . |
---- ----- -------
Итак, в этом примере строки 1,2 и 3 соответствуют моей коллекции, а строка 4 — нет.
Мой ожидаемый результат здесь должен заключаться в том, что когда я перебираю все строки в таблице, он вернет yes для первых 3, а затем вернет false для 4-го.
Заранее благодарю вас.
Комментарии:
1. что вы пробовали до сих пор?
Ответ №1:
Вы должны использовать фильтр для коллекции
$return = $collection->filter(function($item) use ($array) {
foreach ($array as $entry) {
if ($entry['foo_id'] === $item->foo amp;amp; $entry['bar_id'] === $item->bar) {
return true;
}
}
);