3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ [ "partner_id" => "10017", "store_id" => "1000", "item_type_id" => "2", "value" => "58", "category" => "1" ], [ "partner_id" => "10017", "store_id" => "1000", "item_type_id" => "1", "value" => "63", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1000", "item_type_id" => "3", "value" => "29", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1000", "item_type_id" => "2", "value" => "58", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1001", "item_type_id" => "1", "value" => "65", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1001", "item_type_id" => "2", "value" => "58", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1001", "item_type_id" => "3", "value" => "29", "category" => "1" ], [ "partner_id" => "0", "store_id" => "1000", "item_type_id" => "1", "value" => "65", "category" => "1" ] ]; $result = []; foreach ($array as $row) { if ($row['partner_id'] || !isset($result[$row['store_id']][$row['item_type_id']])) { $result[$row['store_id']][$row['item_type_id']][$row['partner_id']] = $row; } } var_export(array_map(function($row) { return array_merge(...$row); }, $result));

preferences:
24.67 ms | 402 KiB | 5 Q