<?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);
preferences:
28.92 ms | 402 KiB | 5 Q