3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* 1 / \ 2 3 / \ \ 4 5 6 \ 7 */ $a = ['d'=>1, 'l'=>&$b, 'r'=>&$c]; $b = ['d'=>2, 'l'=>&$d, 'r'=>&$e]; $c = ['d'=>3, 'l'=>null, 'r'=>&$f]; $d = ['d'=>4, 'l'=>null, 'r'=>&$g]; $e = ['d'=>5, 'l'=>null, 'r'=>null]; $f = ['d'=>6, 'l'=>null, 'r'=>null]; $g = ['d'=>7, 'l'=>null, 'r'=>null]; bfs($a); echo "\n"; dfs($a); echo "\n"; traverse($t); echo "\n"; function bfs($t) { $queue = [$t]; while ($queue) { $node = array_shift($queue); echo $node['d']; if (is_array($node['l'])) { array_push($queue, $node['l']); } if (is_array($node['r'])) { array_push($queue, $node['r']); } } } function dfs($t) { $stack = [$t]; while ($stack) { $node = array_pop($stack); echo $node['d']; if (is_array($node['r'])) { array_push($stack, $node['r']); } if (is_array($node['l'])) { array_push($stack, $node['l']); } } } function traverse($t) { if (isset($t['d'])) { echo $t['d']; } if (is_array($t['l'])) { traverse($t['l']); } if (is_array($t['r'])) { traverse($t['r']); } } $a = [5,1,2,8,3,4,1]; qsort($a); var_dump($a); function qsort(&$arr, $l = 0, $h = null) { if (is_null($h)) $h = count($arr) - 1; if ($l >= $h) return; $v = $arr[$l]; $i = $l; $j = $h; while ($i < $j) { while ($arr[$j] >= $v && $i < $j) { $j--; } while ($arr[$i] <= $v && $i < $j) { $i++; } if ($i == $j) { $arr[$l] = $arr[$i]; $arr[$i] = $v; break; } $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; } qsort($arr, $l, $i - 1); qsort($arr, $i + 1, $h); } var_dump(binsearch($a, 0)); var_dump(binsearch($a, 1)); var_dump(binsearch($a, 6)); var_dump(binsearch($a, 8)); var_dump(binsearch($a, 9)); function binsearch($arr, $val) { $l = 0; $h = count($arr) - 1; while ($l <= $h) { $m = intval(($l + $h) / 2); if ($arr[$m] == $val) { return $m; } if ($arr[$m] < $val) { $l = $m + 1; } else { $h = $m - 1; } } return -1; }

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.3.60.0160.00716.88
8.3.50.0040.01116.50
8.3.40.0120.00618.81
8.3.30.0090.00618.82
8.3.20.0040.00420.33
8.3.10.0040.00421.85
8.3.00.0080.00017.91
8.2.180.0070.01318.19
8.2.170.0070.01122.96
8.2.160.0040.01320.52
8.2.150.0090.00025.66
8.2.140.0030.00624.66
8.2.130.0030.00620.35
8.2.120.0050.00326.35
8.2.110.0070.00320.89
8.2.100.0030.00917.84
8.2.90.0090.00019.17
8.2.80.0060.00318.05
8.2.70.0040.00417.63
8.2.60.0040.00417.93
8.2.50.0040.00418.10
8.2.40.0000.00822.15
8.2.30.0030.00621.08
8.2.20.0050.00318.09
8.2.10.0020.00518.22
8.2.00.0030.00518.04
8.1.280.0160.00625.92
8.1.270.0040.00423.77
8.1.260.0030.00526.35
8.1.250.0050.00228.09
8.1.240.0060.00321.24
8.1.230.0080.00317.58
8.1.220.0040.00417.80
8.1.210.0030.00718.77
8.1.200.0000.00917.38
8.1.190.0000.00817.23
8.1.180.0080.00018.10
8.1.170.0000.00818.59
8.1.160.0030.00619.05
8.1.150.0000.00820.54
8.1.140.0000.00719.68
8.1.130.0000.00718.78
8.1.120.0000.00817.42
8.1.110.0030.00617.51
8.1.100.0000.00817.50
8.1.90.0040.00417.49
8.1.80.0070.00017.55
8.1.70.0000.00717.48
8.1.60.0060.00317.67
8.1.50.0000.00817.50
8.1.40.0080.00017.56
8.1.30.0050.00317.65
8.1.20.0000.00817.70
8.1.10.0000.01017.51
8.1.00.0000.00817.42
8.0.300.0040.00418.77
8.0.290.0070.00016.75
8.0.280.0030.00318.52
8.0.270.0070.00017.30
8.0.260.0030.00316.94
8.0.250.0080.00016.97
8.0.240.0050.00216.98
8.0.230.0080.00317.07
8.0.220.0040.00417.04
8.0.210.0040.00417.02
8.0.200.0000.00616.95
8.0.190.0060.00316.95
8.0.180.0000.00717.07
8.0.170.0040.00417.06
8.0.160.0070.00017.07
8.0.150.0040.00416.94
8.0.140.0040.00416.86
8.0.130.0030.00313.46
8.0.120.0000.00716.99
8.0.110.0000.00716.88
8.0.100.0000.00817.00
8.0.90.0030.00516.98
8.0.80.0120.00616.89
8.0.70.0000.00717.03
8.0.60.0000.00717.03
8.0.50.0050.00317.00
8.0.30.0130.00617.14
8.0.20.0120.00917.40
8.0.10.0070.00017.09
8.0.00.0080.01116.86
7.4.330.0000.00515.55
7.4.320.0040.00416.52
7.4.300.0030.00316.70
7.4.290.0000.00816.48
7.4.280.0040.00416.59
7.4.270.0070.00016.55
7.4.260.0090.00013.26
7.4.250.0000.00716.66
7.4.240.0050.00216.69
7.4.230.0040.00416.35
7.4.220.0170.00316.70
7.4.210.0130.00716.71
7.4.200.0040.00416.67
7.4.160.0090.00616.59
7.4.150.0150.00317.40
7.4.140.0130.00917.86
7.4.130.0110.00716.54
7.4.120.0100.01016.61
7.4.110.0100.00716.65
7.4.100.0030.01516.45
7.4.90.0140.00716.38
7.4.80.0100.01319.39
7.4.70.0080.00816.61
7.4.60.0100.00716.57
7.4.50.0030.01216.41
7.4.40.0060.01216.55
7.4.30.0060.01216.66
7.4.00.0070.00715.16
7.3.330.0050.00013.42
7.3.320.0000.00513.46
7.3.310.0040.00416.49
7.3.300.0000.00716.52
7.3.290.0030.00316.57
7.3.280.0090.00816.45
7.3.270.0140.00617.40
7.3.260.0160.00616.44
7.3.250.0110.00816.50
7.3.240.0080.01016.59
7.3.230.0140.01016.69
7.3.210.0120.00416.60
7.3.200.0120.00916.43
7.3.190.0070.01616.52
7.3.180.0130.00716.57
7.3.170.0120.00416.63
7.3.160.0030.01316.49
7.2.330.0040.01516.48
7.2.320.0120.00616.86
7.2.310.0070.01716.80
7.2.300.0130.00616.80
7.2.290.0090.00916.68
7.2.00.0040.00819.54
7.1.100.0080.00318.14
7.1.70.1000.01015.33
7.1.60.1230.01333.47
7.1.50.1200.02032.96
7.1.40.1070.01732.71
7.1.30.1230.03032.96
7.1.20.1170.01332.74
7.1.10.0900.01715.05
7.1.00.0970.01714.82
7.0.200.1130.01315.09
7.0.190.1270.01314.88
7.0.180.1000.02014.76
7.0.170.1100.00714.55
7.0.160.1070.01014.46
7.0.150.0930.01314.43
7.0.140.1100.01014.56
7.0.130.1130.00714.73
7.0.120.1170.01014.80
7.0.110.1270.00714.48
7.0.100.1300.01314.58
7.0.90.1200.01714.40
7.0.80.0870.00314.80
7.0.70.1270.02014.58
7.0.60.1330.01314.30
7.0.50.1300.00714.50
7.0.40.1170.01314.79
7.0.30.1800.02014.65
7.0.20.1000.01314.79
7.0.10.1270.01714.57
7.0.00.1330.01714.63

preferences:
31.49 ms | 401 KiB | 5 Q