<?php
$input = [['color'=>'#000000','size'=>'L','count'=>2],
['color'=>'#000000','size'=>'XL','count'=>1],
['color'=>'#ffffff','size'=>'L','count'=>2],
['color'=>'#ffffff','size'=>'XL','count'=>1],
['color'=>'#ff0000','size'=>'L','count'=>1]];
$colors = [];
foreach ($input as $product) {
extract($product);
$colors[$color][$size] = $count;
}
print_r($colors);
$output = [];
foreach ($colors as $color => $sizes) {
$data = [];
foreach ($sizes as $size => $count) {
$data[] = ['value' => $size,
'count' => $count];
}
$output[] = ['color' => $color,
'size' => $data];
}
echo json_encode($output, JSON_PRETTY_PRINT);
- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- Array
(
[#000000] => Array
(
[L] => 2
[XL] => 1
)
[#ffffff] => Array
(
[L] => 2
[XL] => 1
)
[#ff0000] => Array
(
[L] => 1
)
)
[
{
"color": "#000000",
"size": [
{
"value": "L",
"count": 2
},
{
"value": "XL",
"count": 1
}
]
},
{
"color": "#ffffff",
"size": [
{
"value": "L",
"count": 2
},
{
"value": "XL",
"count": 1
}
]
},
{
"color": "#ff0000",
"size": [
{
"value": "L",
"count": 1
}
]
}
]
preferences:
117.18 ms | 409 KiB | 5 Q