<?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