3v4l.org

run code in 300+ PHP versions simultaneously
<?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