3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arrs = array( array('id'=>1,'name'=>'root','pid'=>0), array('id'=>2,'name'=>'root1','pid'=>0), array('id'=>3,'name'=>'level1','pid'=>1), array('id'=>4,'name'=>'level11','pid'=>1), array('id'=>5,'name'=>'leve21','pid'=>2), array('id'=>6,'name'=>'level2','pid'=>2) ); class digui{ function index($id,$arr){ echo $this->doarr($id,$arr); } private function doarr($id,$arr ){ foreach($arr as $key => $val){ if($id==$val['pid']){ if($val['pid']!=0) { $this->doarr($val['pid'],$arr); return $val['name']; } else return $val['name']; } } } } $d = new digui; //$d->index(3,$arrs); function test($a=0,&$result=array()){ $a++; if ($a<10) { $result[]=$a; test($a,$result); } echo $a; print_r($result); return $result; } function test1($a=0){ static $result=array(); $a++; if ($a<10) { $result[]=$a; test1($a); print_r($result); } return $result; } $arrs = array( array('id'=>1,'name'=>'root','pid'=>0), array('id'=>2,'name'=>'root1','pid'=>0), array('id'=>3,'name'=>'level1','pid'=>1), array('id'=>4,'name'=>'level11','pid'=>1), array('id'=>5,'name'=>'leve21','pid'=>2), array('id'=>6,'name'=>'level2','pid'=>2) ); function getree($data,$pid){ $tree = array(); foreach($data as $key=>$val){ if($pid == $val['pid']){ $val['pid'] = getree($data,$val['id']); $tree[] = $val; } } return $tree; } function getree1($data,$pid){ $tree = array(); foreach($data as $key=>$val){ if($pid==$val['pid']){ $val['pid'] = getree1($data,$val['id']); $tree[] = $val; } return $tree; } } $res = getree1($arrs,0); $rows = array( array( 'id' => 1, 'name' => 'dev', 'parentid' => 0 ), array( 'id' => 2, 'name' => 'php', 'parentid' => 1 ), array( 'id' => 3, 'name' => 'smarty', 'parentid' => 2 ), array( 'id' => 4, 'name' => 'life', 'parentid' => 0 ), array( 'id' => 5, 'name' => 'pdo', 'parentid' => 2 ), array( 'id' => 6, 'name' => 'pdo-mysql', 'parentid' => 5 ), array( 'id' => 7, 'name' => 'java', 'parentid' => 1 ) ); // 72648 // 84072 function buildtree($rows,$root_id){ $childs = findchild($rows,0); if(empty($childs) ) return null; foreach($childs as $k=>$v){ $rescurtree = buildtree($rows,$v['id']); if(!empty($rescurtree)){ $rescurtree[$k]['childs'] = $rescurtree; } } return $rescurtree; } function findchild($rows,$id){ $childs = array(); foreach($rows as $k=>$v){ if($v['parentid']==$id) $childs[] = $v; } return $childs; } buildtree($rows,0);

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.0610.12280.97
8.3.50.0470.11080.81
8.3.40.0310.04146.49
8.3.30.0400.04046.44
8.3.20.0200.01349.73
8.3.10.0140.02149.86
8.3.00.0270.03349.96
8.2.180.0490.09280.95
8.2.170.0540.02748.77
8.2.160.0400.02750.11
8.2.150.0130.02350.30
8.2.140.0230.03350.31
8.2.130.0070.01747.75
8.2.120.0380.01750.23
8.2.110.0220.02248.96
8.2.100.0350.02248.94
8.2.90.0290.01347.13
8.2.80.0190.01947.25
8.2.70.0200.02047.43
8.2.60.0160.02047.72
8.2.50.0200.02047.25
8.2.40.0130.02049.12
8.2.30.0170.01749.00
8.2.20.0160.01947.75
8.2.10.0170.01747.70
8.2.00.0160.02247.26
8.1.280.0700.06381.48
8.1.270.0300.02452.31
8.1.260.0240.03052.23
8.1.250.0200.02749.73
8.1.240.0300.02047.11
8.1.230.0190.02947.64
8.1.220.0100.02447.28
8.1.210.0170.01747.11
8.1.200.0060.02847.11
8.1.190.0150.02247.06
8.1.180.0100.02347.38
8.1.170.0220.01048.29
8.1.160.0150.01551.82
8.1.150.0100.02448.70
8.1.140.0230.01049.29
8.1.130.0160.01647.45
8.1.120.0070.02647.14
8.1.110.0140.01847.13
8.1.100.0150.01847.13
8.1.90.0120.01847.08
8.1.80.0060.02547.22
8.1.70.0100.03847.21
8.1.60.0190.01947.33
8.1.50.0230.01347.14
8.1.40.0100.02747.30
8.1.30.0130.02347.36
8.1.20.0200.01647.41
8.1.10.0330.04280.79
8.1.00.0370.04180.82
8.0.300.0420.02380.23
8.0.290.0200.04780.13
8.0.280.0240.04181.54
8.0.270.0310.03180.42
8.0.260.0170.03880.32
8.0.250.0190.03680.04
8.0.240.0200.03780.02
8.0.230.0290.02979.96
8.0.220.0300.02780.01
8.0.210.0310.02780.03
8.0.200.0370.04180.10
8.0.190.0300.04480.06
8.0.180.0510.03880.03
8.0.170.0240.03880.14
8.0.160.0210.04180.08
8.0.150.0300.03080.05
8.0.140.0200.04180.03
8.0.130.0730.099136.45
8.0.120.0400.04080.08
8.0.110.0360.02679.87
8.0.100.0230.03980.09
8.0.90.0200.04079.89
8.0.80.0550.06280.02
8.0.70.0190.03979.96
8.0.60.0200.03980.04
8.0.50.0260.03379.89
8.0.30.0610.06080.09
8.0.20.0680.07780.12
8.0.10.0330.03380.15
8.0.00.0640.07480.05
7.4.330.0370.04076.64
7.4.320.0130.04579.63
7.4.300.0170.04079.55
7.4.290.0220.03879.71
7.4.280.0200.04679.59
7.4.270.0370.02379.66
7.4.260.0330.04679.74
7.4.250.0260.03679.51
7.4.240.0230.03979.58
7.4.230.0260.03679.45
7.4.220.1270.06079.56
7.4.210.0590.06979.86
7.4.200.0310.02779.65
7.4.160.0630.06379.66
7.4.150.0660.07679.82
7.4.140.1160.15879.59
7.4.130.0570.07879.83
7.4.120.0720.07479.71
7.4.110.0860.10379.84
7.4.100.0800.05679.77
7.4.90.0500.08779.71
7.4.80.0570.09479.55
7.4.70.0570.08079.54
7.4.60.0800.05379.73
7.4.50.0340.05579.77
7.4.40.0680.07279.54
7.4.30.0560.07679.79
7.4.00.0400.05777.85
7.3.330.0750.090136.53
7.3.320.0430.077136.49
7.3.310.0270.03779.44
7.3.300.0290.03279.38
7.3.290.0610.06479.57
7.3.280.0760.08579.51
7.3.270.0950.12579.57
7.3.260.0720.07079.69
7.3.250.0800.06479.65
7.3.240.0730.08879.58
7.3.230.0640.07479.38
7.3.210.0730.07979.58
7.3.200.0530.07979.78
7.3.190.0630.08079.52
7.3.180.0690.07079.39
7.3.170.0740.08779.70
7.3.160.0940.08879.53
7.3.120.0490.07377.73
7.3.110.0440.07877.78
7.3.100.0390.07277.97
7.3.90.0400.08077.77
7.3.80.0300.05677.83
7.3.70.0370.05177.61
7.3.60.0370.04777.55
7.3.50.0370.05677.51
7.3.40.0190.06577.72
7.3.30.0230.07277.71
7.3.20.0260.04678.72
7.3.10.0070.05778.39
7.3.00.0230.05578.49
7.2.330.0760.06379.46
7.2.320.0570.08479.87
7.2.310.0580.07879.46
7.2.300.0730.08279.64
7.2.290.0750.05979.55
7.2.250.0360.09978.09
7.2.240.0400.06078.11
7.2.230.0430.08777.99
7.2.220.0270.09778.28
7.2.210.0230.06577.85
7.2.200.0330.06278.21
7.2.190.0330.07777.84
7.2.180.0300.07378.02
7.2.170.0300.08877.86
7.2.110.3540.04278.39
7.2.60.2810.02379.03
7.2.00.0490.03681.45
7.1.330.0160.07978.02
7.1.320.0200.07877.51
7.1.310.0170.11377.45
7.1.300.0030.09077.88
7.1.290.0230.07877.72
7.1.280.0330.10777.82
7.1.270.0340.08277.80
7.1.260.0540.09977.62
7.1.200.0870.03777.73
7.1.100.0700.00021.49
7.1.70.0070.04479.26
7.1.60.2540.04779.12
7.1.50.0760.07679.00
7.1.00.0100.13084.36
7.0.201.0850.03678.25
7.0.110.7570.12783.94
7.0.101.0400.11783.85
7.0.90.7930.14383.89
7.0.80.7600.12083.99
7.0.70.9800.14083.82
7.0.60.9730.12783.81
7.0.50.8570.12083.98
7.0.40.6400.12383.80
7.0.30.9670.14383.91
7.0.20.9070.16383.88
7.0.10.7900.14783.92
7.0.00.7930.11783.88
5.6.260.0700.18384.93
5.6.250.0470.18085.46
5.6.240.0430.19784.89
5.6.230.0430.18085.04
5.6.220.0570.15385.05
5.6.210.0430.17084.72
5.6.200.0400.17785.13
5.6.190.0630.15785.04
5.6.180.0430.16384.84
5.6.170.0500.16085.13
5.6.160.0430.16785.11
5.6.150.0500.17384.97
5.6.140.0600.17085.83
5.6.130.0530.16384.79
5.6.120.0370.17384.89
5.6.110.0530.16385.01
5.6.100.0430.17785.00
5.6.90.0630.14785.02
5.6.80.0570.14784.35
5.6.70.0430.17084.48
5.6.60.0800.19084.25
5.6.50.0470.16384.40
5.6.40.0530.15384.41
5.6.30.0530.16384.46
5.6.20.0800.14784.40
5.6.10.0670.17784.46
5.6.00.0800.25084.48

preferences:
59.86 ms | 401 KiB | 5 Q