<?php
function generateProductArray($database) {
return array_reduce($database, function ($result, $entry) {
[$model, $storage, $color] = array_values($entry);
$result[$model][$storage][$color] = ($result[$model][$storage][$color] ?? 0) + 1;
return $result;
}, []);
}
// Example data from the database
$database = array(
array('model' => 'iPhone 14 Pro', 'storage' => '128gb', 'color' => 'Black'),
array('model' => 'iPhone 14 Pro', 'storage' => '256gb', 'color' => 'Blue'),
array('model' => 'iPhone 14 Pro', 'storage' => '128gb', 'color' => 'Black'),
array('model' => 'iPhone 14 Pro', 'storage' => '256gb', 'color' => 'Red'),
array('model' => 'iPhone 14 Pro', 'storage' => '256gb', 'color' => 'Red'),
);
$resultArray = generateProductArray($database);
print_r($resultArray);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
- Array
(
[iPhone 14 Pro] => Array
(
[128gb] => Array
(
[Black] => 2
)
[256gb] => Array
(
[Blue] => 1
[Red] => 2
)
)
)
preferences:
128.54 ms | 402 KiB | 90 Q