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);
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