3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * ArrayStacker */ class ArrayStacker { /** * Find double values in array and remove them * @param array $array */ protected function _filterArrayDistict($array) { $newArray = array(); foreach($array as $value) { if(!in_array($value, $newArray)) { $newArray[] = $value; } } return $newArray; } /** * Split the whole string into a big array * * @param string $string * @return array */ protected function _splitString($string) { $lines = explode("\n", $string); $i = 0; $array = array(); foreach($lines as $line) { $values = explode(' / ', $line); foreach($values as $v => $value) { $values[$v] = trim($value); // make sure we got no whitespaces } $array[$i] = $values; $i++; } return $array; } /** * Build a stacked array * * @param array $array unstacked array * @return stacked array */ protected function _stack($array) { $stackedArray = array(); $key = array_shift($array); $depth = count($array); if($depth == 1) { $stackedArray[][$key] = $array[0]; // that's a single value } else { $subArray = $this->_stack($array); if($subArray != null) { $stackedArray[][$key] = $subArray; } } return $stackedArray; } /** * * @param unknown_type $array1 * @param unknown_type $array2 */ protected function _depthArrayMerge($array1, $array2) { } /** * Build stacked array from string * * @param string $string * @return array stacked array */ public function stackArray($string) { // Split the string to an array $array = $this->_splitString($string); // Filter out doubled values $array = $this->_filterArrayDistict($array); // Build stacked array $stackedArray = array(); foreach($array as $row) { $stackedArray[] = $this->_stack($row); } return $stackedArray; } } $string = "Football / Germany / 1.Liga Football / Germany / 1.Liga Football / Germany / 2.Liga Football / Germany / 2.Liga Football / Germany / 2.Liga Football / England / 1.Liga Football / England / 1.Liga Football / England / 2.Liga Football / England / 2.Liga Football / England / 3.Liga Hockey / Germany / 1.Liga Hockey / Germany / 1.Liga Hockey / Germany / 2.Liga Fechten / Meisterschaft Fechten / Meisterschaft Fechten / Weltmeister"; $arrayStacker = new ArrayStacker(); $stackedArray = $arrayStacker->stackArray($string); var_dump($stackedArray); /* * OUTPUT: array(3) { ["Football"]=> array(2) { ["Germany"]=> array(2) { [0]=> string(6) "1.Liga" [1]=> string(6) "2.Liga" } ["England"]=> array(3) { [0]=> string(6) "1.Liga" [1]=> string(6) "2.Liga" [2]=> string(6) "3.Liga" } } ["Hockey"]=> array(1) { ["Germany"]=> array(2) { [0]=> string(6) "1.Liga" [1]=> string(6) "2.Liga" } } ["Fechten"]=> array(2) { [0]=> string(13) "Meisterschaft" [1]=> string(11) "Weltmeister" } } */

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.0100.01018.30
8.3.50.0130.00721.27
8.3.40.0160.00318.60
8.3.30.0130.00318.71
8.3.20.0040.00418.77
8.3.10.0040.00421.02
8.3.00.0000.00821.71
8.2.180.0000.01516.63
8.2.170.0120.00622.96
8.2.160.0080.00822.28
8.2.150.0000.00824.18
8.2.140.0080.00024.66
8.2.130.0040.00426.16
8.2.120.0040.00419.69
8.2.110.0030.00622.20
8.2.100.0090.00317.91
8.2.90.0060.00319.15
8.2.80.0040.00417.97
8.2.70.0030.00717.74
8.2.60.0040.00417.92
8.2.50.0000.00818.07
8.2.40.0030.00518.22
8.2.30.0030.00619.43
8.2.20.0060.00317.72
8.2.10.0040.00417.64
8.2.00.0030.00617.68
8.1.280.0110.00425.92
8.1.270.0040.00423.99
8.1.260.0040.00426.35
8.1.250.0040.00728.09
8.1.240.0060.00322.50
8.1.230.0090.00321.02
8.1.220.0060.00318.77
8.1.210.0000.00818.84
8.1.200.0030.00617.38
8.1.190.0090.00019.41
8.1.180.0090.00018.10
8.1.170.0060.00318.65
8.1.160.0000.00918.82
8.1.150.0000.00718.72
8.1.140.0040.00417.47
8.1.130.0030.00317.77
8.1.120.0000.00717.39
8.1.110.0090.00017.40
8.1.100.0000.00817.54
8.1.90.0040.00417.51
8.1.80.0000.00817.44
8.1.70.0050.00317.46
8.1.60.0000.00817.62
8.1.50.0000.00817.42
8.1.40.0000.00817.50
8.1.30.0030.00517.66
8.1.20.0000.00817.64
8.1.10.0040.00417.55
8.1.00.0040.00417.61
8.0.300.0050.00319.98
8.0.290.0000.00717.05
8.0.280.0050.00218.46
8.0.270.0000.00717.26
8.0.260.0030.00316.72
8.0.250.0040.00417.00
8.0.240.0040.00417.00
8.0.230.0030.00616.89
8.0.220.0070.00016.91
8.0.210.0000.00816.91
8.0.200.0040.00416.95
8.0.190.0050.00317.01
8.0.180.0050.00316.84
8.0.170.0000.00716.95
8.0.160.0080.00016.96
8.0.150.0030.00416.85
8.0.140.0040.00416.77
8.0.130.0060.00013.33
8.0.120.0060.00316.91
8.0.110.0040.00416.89
8.0.100.0070.00016.91
8.0.90.0000.00716.93
8.0.80.0060.00916.96
8.0.70.0040.00416.78
8.0.60.0000.00816.78
8.0.50.0000.00716.71
8.0.30.0100.01117.04
8.0.20.0120.01317.40
8.0.10.0040.00417.02
8.0.00.0130.00916.93
7.4.330.0030.00314.66
7.4.320.0030.00316.54
7.4.300.0030.00616.67
7.4.290.0030.00516.63
7.4.280.0050.00316.46
7.4.270.0070.00016.60
7.4.260.0000.00513.25
7.4.250.0020.00516.63
7.4.240.0000.00716.58
7.4.230.0070.00016.62
7.4.220.0070.02016.63
7.4.210.0060.00916.48
7.4.200.0000.00716.73
7.4.190.0040.00316.80
7.4.160.0160.00816.65
7.4.150.0080.01117.40
7.4.140.0130.00617.86
7.4.130.0160.00216.67
7.4.120.0090.00816.44
7.4.110.0120.01216.42
7.4.100.0190.00316.63
7.4.90.0140.00716.59
7.4.80.0110.00819.37
7.4.70.0030.01516.45
7.4.60.0110.00816.55
7.4.50.0030.00716.62
7.4.40.0060.01022.52
7.4.30.0110.00716.51
7.4.00.0070.00715.04
7.3.330.0030.00313.20
7.3.320.0090.00913.29
7.3.310.0000.00716.41
7.3.300.0000.00816.26
7.3.290.0060.01216.39
7.3.280.0110.00616.37
7.3.270.0110.01117.40
7.3.260.0180.00618.24
7.3.250.0090.00916.37
7.3.240.0130.01016.44
7.3.230.0130.00516.63
7.3.210.0090.00916.66
7.3.200.0180.00019.39
7.3.190.0120.00616.45
7.3.180.0070.01516.71
7.3.170.0100.01416.47
7.3.160.0110.00616.40
7.3.120.0030.01414.64
7.2.330.0190.00316.79
7.2.320.0170.00316.80
7.2.310.0070.01316.71
7.2.300.0150.00416.59
7.2.290.0030.01916.88
7.2.00.0340.00619.34
7.1.100.0060.00317.84
7.1.70.0040.00817.27
7.1.60.0070.01719.40
7.1.50.0100.01317.00
7.1.00.0070.07322.42
7.0.200.0000.00716.91
7.0.140.0030.07722.15
7.0.60.0030.06721.74
7.0.50.0200.06717.81
7.0.40.0070.04720.25
7.0.30.0270.03720.33
7.0.20.0270.08020.05
7.0.10.0130.08320.25
7.0.00.0070.05020.15
5.6.210.0070.08320.76
5.6.200.0100.07718.14
5.6.190.0070.04020.55
5.6.180.0230.04320.57
5.6.170.0230.08720.57
5.6.160.0100.08720.52
5.6.150.0100.03718.14
5.6.140.0030.05718.28
5.6.130.0030.04318.25
5.6.120.0000.07320.99
5.6.110.0100.07721.02
5.6.100.0100.08021.11
5.6.90.0100.05721.07
5.6.80.0270.05720.29
5.5.350.4100.04320.43
5.5.340.0000.04317.93
5.5.330.0130.08320.29
5.5.320.0530.07720.36
5.5.310.0100.04720.51
5.5.300.0030.07317.95
5.5.290.0130.07017.97
5.5.280.0070.08020.78
5.5.270.0070.04320.69
5.5.260.0030.04320.81
5.5.250.0070.07020.71
5.5.240.0100.06320.27
5.4.450.3570.03719.29
5.4.440.0030.04019.44
5.4.430.1200.04019.48
5.4.420.3570.04019.50
5.4.410.3730.03319.32
5.4.400.3800.04018.91
5.4.390.3430.04019.15
5.4.380.3800.04019.16
5.4.370.3470.03019.15
5.4.360.3800.03719.11
5.4.350.4170.04018.96
5.4.340.3900.03718.89
5.4.320.3770.03719.16
5.4.310.3870.03319.02
5.4.300.3900.03018.96
5.4.290.3830.03319.15
5.4.280.4470.03319.17
5.4.270.4270.04319.17
5.4.260.0170.07019.20
5.4.250.0100.07319.00
5.4.240.4630.03318.90
5.4.230.4430.03319.10
5.4.220.4430.04019.12
5.4.210.4170.04019.13
5.4.200.3830.04318.89
5.4.190.3970.03718.94
5.4.180.3830.03718.95
5.4.170.0830.05719.12
5.4.160.1300.03018.88
5.4.150.4670.03719.09
5.4.140.4200.03316.44
5.4.130.3800.03716.45
5.4.120.3900.03316.44
5.4.110.3670.03016.40
5.4.100.3770.03716.54
5.4.90.4070.03316.24
5.4.80.4430.04316.37
5.4.70.3900.04016.46
5.4.60.3400.03716.41
5.4.50.3900.04016.18
5.4.40.3730.04016.43
5.4.30.3830.03316.49
5.4.20.3470.04016.18
5.4.10.4530.04016.49
5.4.00.4430.03715.88
5.3.290.3630.03014.73
5.3.280.4530.03714.70
5.3.270.3930.03714.64
5.3.260.0030.06314.79
5.3.250.4630.02714.63
5.3.240.4530.04014.66
5.3.230.3830.03014.68
5.3.220.3970.03014.65
5.3.210.3730.04314.65
5.3.200.3830.03314.52
5.3.190.4630.03714.74
5.3.180.4500.04314.63
5.3.170.3830.04014.63
5.3.160.3830.03314.59
5.3.150.3670.03014.51
5.3.140.3770.03714.74
5.3.130.3570.03714.46
5.3.120.3970.03314.61
5.3.110.4670.05314.61
5.3.100.4400.04314.11
5.3.90.4530.03713.98
5.3.80.4700.03314.02
5.3.70.4530.03314.04
5.3.60.4430.03314.19
5.3.50.3770.03713.97
5.3.40.3470.02713.97
5.3.30.3530.03713.99
5.3.20.4000.04013.75
5.3.10.4170.03313.71
5.3.00.3500.03313.83
5.2.170.2970.03011.34
5.2.160.3130.03011.11
5.2.150.2970.03011.13
5.2.140.3000.03311.15
5.2.130.3030.02311.29
5.2.120.3400.03311.15
5.2.110.3030.02711.13
5.2.100.3070.02711.09
5.2.90.2900.02711.19
5.2.80.2830.03011.17
5.2.70.2900.03311.18
5.2.60.2830.03011.14
5.2.50.2970.03010.95
5.2.40.2300.03311.09
5.2.30.2530.03310.96
5.2.20.2670.03010.95
5.2.10.2430.02710.78
5.2.00.2470.02010.64
5.1.60.2330.02310.01
5.1.50.3230.03010.02
5.1.40.2930.02710.00
5.1.30.2770.03010.39
5.1.20.3130.02710.44
5.1.10.3200.02710.07
5.1.00.2770.02710.17
5.0.50.1730.0208.73
5.0.40.1400.0208.50
5.0.30.1270.0308.24
5.0.20.1430.0278.23
5.0.10.1370.0108.19
5.0.00.1470.0338.11
4.4.90.1330.0136.95
4.4.80.1230.0106.95
4.4.70.1230.0176.95
4.4.60.1230.0176.95
4.4.50.1470.0136.95
4.4.40.1530.0276.95
4.4.30.1230.0176.95
4.4.20.1470.0176.95
4.4.10.1630.0206.95
4.4.00.1600.0276.95
4.3.110.1300.0176.97
4.3.100.1300.0176.99
4.3.90.1600.0177.00
4.3.80.1570.0277.00
4.3.70.1370.0077.00
4.3.60.1170.0177.00
4.3.50.1230.0137.00
4.3.40.1270.0207.00
4.3.30.0700.0207.00
4.3.20.1030.0237.00
4.3.10.0900.0237.00
4.3.00.0900.0207.00

preferences:
38.61 ms | 401 KiB | 5 Q