<?php
$sortInfo = [
['maincat' => 'c1', 'subcats' => ['sc1.1', 'sc1.2']],
['maincat' => 'c2', 'subcats' => ['sc2.1', 'sc2.2']],
['maincat' => 'c3', 'subcats' => ['sc3.1', 'sc3.2']],
['maincat' => 'c4', 'subcats' => ['sc4.1', 'sc4.2']],
['maincat' => 'c5', 'subcats' => ['sc5.1', 'sc5.2']],
];
function get_cats(array $sortInfo, $mode) {
$cats = match($mode) {
'all' => array_merge(
array_column($sortInfo, 'maincat'), ...array_column($sortInfo, 'subcats')
),
'sub' => array_merge(...array_column($sortInfo, 'subcats')),
default => array_column($sortInfo, 'maincat')
};
return $cats;
}
$cats = get_cats($sortInfo, 'all');
var_dump($cats);
$cats = get_cats($sortInfo, 'sub');
var_dump($cats);
$cats = get_cats($sortInfo, 'main');
var_dump($cats);
preferences:
24.74 ms | 406 KiB | 5 Q