<?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);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array(15) {
[0]=>
string(2) "c1"
[1]=>
string(2) "c2"
[2]=>
string(2) "c3"
[3]=>
string(2) "c4"
[4]=>
string(2) "c5"
[5]=>
string(5) "sc1.1"
[6]=>
string(5) "sc1.2"
[7]=>
string(5) "sc2.1"
[8]=>
string(5) "sc2.2"
[9]=>
string(5) "sc3.1"
[10]=>
string(5) "sc3.2"
[11]=>
string(5) "sc4.1"
[12]=>
string(5) "sc4.2"
[13]=>
string(5) "sc5.1"
[14]=>
string(5) "sc5.2"
}
array(10) {
[0]=>
string(5) "sc1.1"
[1]=>
string(5) "sc1.2"
[2]=>
string(5) "sc2.1"
[3]=>
string(5) "sc2.2"
[4]=>
string(5) "sc3.1"
[5]=>
string(5) "sc3.2"
[6]=>
string(5) "sc4.1"
[7]=>
string(5) "sc4.2"
[8]=>
string(5) "sc5.1"
[9]=>
string(5) "sc5.2"
}
array(5) {
[0]=>
string(2) "c1"
[1]=>
string(2) "c2"
[2]=>
string(2) "c3"
[3]=>
string(2) "c4"
[4]=>
string(2) "c5"
}
- Output for 7.4.0 - 7.4.33
- Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in /in/NasiC on line 14
Process exited with code 255.
preferences:
128.77 ms | 407 KiB | 5 Q