3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array( array('ID' => 705, 'NAME' => 'Телефоны и гаджеты', 'DEPTH_LEVEL' => 1), array('ID' => 706, 'NAME' => 'Смартфоны', 'DEPTH_LEVEL' => 2), array('ID' => 5586, 'NAME' => 'Аксессуары для гаджетов', 'DEPTH_LEVEL' => 2), array('ID' => 715, 'NAME' => 'Аксессуары для телефонов', 'DEPTH_LEVEL' => 3), array('ID' => 716, 'NAME' => 'Чехлы для смартфонов', 'DEPTH_LEVEL' => 4), array('ID' => 5536, 'NAME' => 'Чехлы для Apple', 'DEPTH_LEVEL' => 5), array('ID' => 5539, 'NAME' => 'Чехлы для Samsung', 'DEPTH_LEVEL' => 5), array('ID' => 3010, 'NAME' => 'Защитные стекла для телефонов', 'DEPTH_LEVEL' => 3), array('ID' => 660, 'NAME' => 'Компьютерная техника', 'DEPTH_LEVEL' => 1) ); $tree = []; $stack = []; for ($i = 0; $i < count($arr); $i++) { $node = $tree; while (!empty($stack) && $stack[count($stack) - 1]['DEPTH_LEVEL'] >= $arr[$i]['DEPTH_LEVEL']) { array_pop($stack); } foreach ($stack as $ancestor) { $node = $node[$ancestor['INDEX']]['CHILDREN']; } $node[] = [ 'ID' => $arr[$i]['ID'], 'NAME' => $arr[$i]['NAME'] ]; $stack[] = [ 'INDEX' => count($node) - 1, 'DEPTH_LEVEL' => $arr[$i]['DEPTH_LEVEL'], ]; } print_r($tree);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.4.120.0050.00322.38
8.4.110.0120.00718.75
8.4.100.0030.00618.86
8.4.90.0120.00522.07
8.4.80.0070.00118.60
8.4.70.0070.01318.02
8.4.60.0100.01020.51
8.4.50.0110.01117.81
8.4.40.0160.00317.77
8.4.30.0040.01520.56
8.4.20.0100.01019.06
8.4.10.0060.01019.64
8.3.250.0120.00718.92
8.3.240.0090.00816.67
8.3.230.0070.00316.75
8.3.220.0040.00419.04
8.3.210.0100.01018.70
8.3.200.0020.00716.64
8.3.190.0060.00319.00
8.3.180.0090.00918.38
8.3.170.0050.00318.81
8.3.160.0120.00619.16
8.3.150.0120.00616.67
8.3.140.0110.00716.85
8.3.130.0030.00616.83
8.3.120.0040.00418.88
8.3.110.0110.00020.94
8.3.100.0060.00324.06
8.3.90.0100.00726.77
8.3.80.0060.00319.36
8.3.70.0170.00316.75
8.3.60.0150.00416.91
8.3.50.0090.01216.67
8.3.40.0060.00921.89
8.3.30.0130.00922.96
8.3.20.0060.01223.71
8.3.10.0070.01123.61
8.3.00.0090.00922.96
8.2.290.0110.00720.45
8.2.280.0120.01118.50
8.2.270.0180.00016.99
8.2.260.0110.00717.34
8.2.250.0090.00616.75
8.2.240.0070.00318.60
8.2.230.0110.00422.58
8.2.220.0080.00837.54
8.2.210.0070.01026.77
8.2.200.0000.01018.88
8.2.190.0160.00316.88
8.2.180.0080.00818.42
8.2.170.0070.01022.96
8.2.160.0070.01422.96
8.2.150.0100.00722.96
8.2.140.0070.00722.96
8.2.130.0090.00622.96
8.2.120.0100.01022.96
8.2.110.0200.00022.96
8.2.100.0140.00322.96
8.2.90.0170.00322.96
8.2.80.0060.00922.96
8.2.70.0090.00622.96
8.2.60.0080.00822.96
8.2.50.0180.00322.96
8.2.40.0110.00722.96
8.2.30.0070.01422.96
8.2.20.0150.00322.96
8.2.10.0060.01222.96
8.2.00.0110.00722.96
8.1.330.0100.01021.90
8.1.320.0110.00816.59
8.1.310.0170.00416.91
8.1.300.0120.00316.60
8.1.290.0040.00430.84
8.1.280.0090.00625.92
8.1.270.0100.01022.96
8.1.260.0140.00722.96
8.1.250.0070.00722.96
8.1.240.0090.00622.96
8.1.230.0200.00322.96
8.1.220.0130.00322.96
8.1.210.0170.00022.96
8.1.200.0030.01222.96
8.1.190.0160.00622.96
8.1.180.0070.01122.96
8.1.170.0120.00622.96
8.1.160.0040.01122.96
8.1.150.0110.00422.96
8.1.140.0070.00722.96
8.1.130.0110.00422.96
8.1.120.0060.00922.96
8.1.110.0110.00422.96
8.1.100.0150.00322.96
8.1.90.0110.00722.96
8.1.80.0120.00622.96
8.1.70.0140.00322.96
8.1.60.0070.00722.96
8.1.50.0070.01122.96
8.1.40.0120.00622.96
8.1.30.0110.00422.96
8.1.20.0110.00722.96
8.1.10.0160.00322.96
8.1.00.0110.00422.96

preferences:
25.94 ms | 403 KiB | 5 Q