Храните объекты в одном объектном массиве, значение идентификатора которых найдено в другом объектном массиве.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Храните объекты в одном объектном массиве, значение идентификатора которых найдено в другом объектном массиве.

Сообщение Anonymous »


Я пытаюсь использовать array_filter() для фильтрации массива объектов, они имеют общее значение — location_id.

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

$warehouse_1 = new warehouse(1, 100, [1,2,3,4]);
$warehouse_2 = new warehouse(2, 1100, [1,2,3,4]);
$warehouse_3 = new warehouse(3, 12000, [1,2,3,4]);
$warehouse_4 = new warehouse(4, 130000, [1,2,3,4]);
$warehouse_5 = new warehouse(5, 1400000, [1,2,3,4]);

$inventory_feed_1 = new inventory_feed(12, 1, "2as21332kjd");
$inventory_feed_2 = new inventory_feed(10, 2, "2123asagfrtsdd");
$inventory_feed_3 = new inventory_feed(11, 3, "2as1231sds2d");
$inventory_feed_4 = new inventory_feed(13, 4, "2as1231sds2d");
$inventory_feed_5 = new inventory_feed(14, 5, "2as1231sds2d");

$ifeeds = ["a" => $inventory_feed_1, "b" => $inventory_feed_2, "c" => $inventory_feed_3];
$warehouses = [$warehouse_1, $warehouse_2, $warehouse_3, $warehouse_4, $warehouse_5];

$warehouses_filtered = array_filter(
$warehouses,
function ($warehouse) use ($ifeeds) {
foreach($ifeeds as $ifeed_id => $ifeed) {
return $ifeed->getWarehouseId() == $warehouse->getId();
});

echo count($warehouses_filtered);
Желаемый результат должен быть [$warehouse_1, $warehouse_2, $warehouse_3]
но он всегда возвращает исходный результат ()


Источник: https://stackoverflow.com/questions/706 ... r-objectar
Ответить

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

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

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

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

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