Я пытаюсь использовать array_filter() для фильтрации массива объектов, они имеют общее значение — location_id. [code]$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");
$warehouses_filtered = array_filter( $warehouses, function ($warehouse) use ($ifeeds) { foreach($ifeeds as $ifeed_id => $ifeed) { return $ifeed->getWarehouseId() == $warehouse->getId(); });
echo count($warehouses_filtered); [/code] Желаемый результат должен быть [$warehouse_1, $warehouse_2, $warehouse_3] но он всегда возвращает исходный результат ([code]5[/code])