3v4l.org

run code in 300+ PHP versions simultaneously
<?php $menu = array( array(1,3,'Wurm 1.1', 2, 10), array(2,6,'Vogel 2.1', 2, 30), array(3,0,'Tiger 1', 1, 10), array(4,6,'Hund 2.2', 2, 40), array(5,3,'Katze 1.2', 2, 11), array(6,0,'Pferd 2', 1, 20), array(7,1,'Baer 1.1.1', 3, 0), array(8,3,'Schwein 1.3', 2, 12), array(9,4,'Esel 2.2.1', 3, 0), ); // Algorithmus hier /* steps: 1. sort items by levelId and sortId - finished 2. get max levelId value 'x' = iterations - ...that seems to be not the way to go. better way would be recursion for each element and search for children belonging to the current menuId.... 3. ... */ $result = array(); foreach ($menu as $key => $row){ $levelId[$key] = $row[3]; $sortId[$key] = $row[4]; } array_multisort($levelId, SORT_DESC, $sortId, SORT_DESC, $menu); $levels = $menu[0][3]; echo count($menu) . " items\n"; echo $levels . " levels\n"; function getChild($list){ foreach ($list as $entry){ if ($entry[1] == $list[0]){ array_push($entry, $target); } } } getChild($menu[8]); var_dump($result); $target = array( array(3,0,'Tiger 1', 1, 10), array(1,3,'Wurm 1.1', 2, 10), array(7,1,'Baer 1.1.1', 3, 0), array(5,3,'Katze 1.2', 2, 11), array(8,3,'Schwein 1.3', 2, 12), array(6,0,'Pferd 2', 1, 20), array(2,6,'Vogel 2.1', 2, 30), array(4,6,'Hund 2.2', 2, 40), array(9,4,'Esel 2.2.1', 3, 0), ); //var_dump($result == $target); //var_dump($result);
Output for 8.3.0 - 8.3.4, 8.3.6
9 items 3 levels Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 array(0) { }
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 9 items 3 levels Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 Warning: Trying to access array offset on int in /in/99A1F on line 46 array(0) { }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18
9 items 3 levels Warning: Trying to access array offset on value of type int in /in/99A1F on line 46 Warning: Trying to access array offset on value of type int in /in/99A1F on line 46 Warning: Trying to access array offset on value of type int in /in/99A1F on line 46 Warning: Trying to access array offset on value of type int in /in/99A1F on line 46 array(0) { }
Output for 7.4.0 - 7.4.33
9 items 3 levels Notice: Trying to access array offset on value of type int in /in/99A1F on line 46 Notice: Trying to access array offset on value of type int in /in/99A1F on line 46 Notice: Trying to access array offset on value of type int in /in/99A1F on line 46 Notice: Trying to access array offset on value of type int in /in/99A1F on line 46 array(0) { }
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33
9 items 3 levels array(0) { }

preferences:
213 ms | 402 KiB | 291 Q