3v4l.org

run code in 300+ PHP versions simultaneously
<?php function reduceMultidimensionalArraysToOneDimension(array &$result, array $messages, $preffix) { foreach ($messages as $field => $msg) { if (is_array($msg)) { reduceMultidimensionalArraysToOneDimension($result, $msg, $preffix . $field . '_'); } else { $result[$preffix . $field] = $msg; } } } $messages = array( 'second1' => array( 'm1' => 'lorem ipusum', 'third1' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', 'm3' => 'lorem ipusum', 'third2' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm4' => 'lorem ipusum', ), 'm1' => 'lorem ipusum', 'second2' => array( 'm1' => 'lorem ipusum', 'third1' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', 'm3' => 'lorem ipusum', 'third2' => array( 'm1' => 'lorem ipusum', 'm2' => 'lorem ipusum', ), 'm4' => 'lorem ipusum', ), 'm2' => 'lorem ipusum', ); echo "Starting reference\n"; $time = microtime(true); $result = array(); reduceMultidimensionalArraysToOneDimension($result, $messages, 'preffix_'); $time = microtime(true) - $time; echo 'reference() took ' . $time . " seconds\n";

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)
7.3.10.0000.00916.54
7.3.00.0060.00616.63
7.2.130.0070.00317.12
7.2.120.0060.00916.60
7.2.110.0030.01016.95
7.2.100.0040.01116.87
7.2.90.0080.00817.07
7.2.80.0030.01016.95
7.2.70.0070.00316.99
7.2.60.0070.00716.89
7.2.50.0070.00716.94
7.2.40.0060.00917.05
7.2.30.0080.00417.06
7.2.20.0060.00616.78
7.2.10.0100.00316.75
7.2.00.0060.00518.18
7.1.250.0040.00415.53
7.1.70.0040.00417.14
7.1.60.0100.01419.82
7.1.50.0160.01034.90
7.1.00.0000.07722.33
7.0.200.0000.00916.56
7.0.140.0070.07022.08
7.0.60.0100.08319.94
7.0.50.0170.08017.98
7.0.40.0230.06720.52
7.0.30.0270.05720.26
7.0.20.0330.07320.05
7.0.10.0230.08320.10
7.0.00.0170.07720.09
5.6.280.0030.07321.14
5.6.210.0200.05720.51
5.6.200.0000.04718.27
5.6.190.0130.08020.67
5.6.180.3500.05020.39
5.6.170.0430.06720.47
5.6.160.0100.04320.47
5.6.150.0100.04018.12
5.6.140.0130.07018.18
5.6.130.0230.06018.18
5.6.120.0070.04720.97
5.6.110.0030.08021.05
5.6.100.0100.04321.10
5.6.90.0070.04021.11
5.6.80.0070.07320.41
5.6.70.0300.07720.37
5.5.350.0030.07320.50
5.5.340.0030.06717.93
5.5.330.0070.05320.47
5.5.320.0270.04020.27
5.5.310.0330.04720.38
5.5.300.0070.08317.97
5.5.290.0030.07317.94
5.5.280.0070.06720.89
5.5.270.0070.08320.69
5.5.260.0100.07020.77
5.5.250.0000.08720.80
5.5.240.0270.05720.20
5.4.450.0070.06019.46
5.4.440.0330.05319.57
5.4.430.1330.00019.59
5.4.420.1300.00019.63
5.4.410.0130.07318.98
5.4.400.0300.05318.90
5.4.390.0300.05318.74
5.4.380.0330.05318.73
5.4.370.0200.04718.73
5.4.360.0130.05318.80
5.4.350.0200.04718.80
5.4.340.0130.05318.59
5.4.320.0020.04312.51
5.4.310.0040.04412.51
5.4.300.0070.03812.51
5.4.290.0070.03712.50
5.4.280.0070.03412.41
5.4.270.0040.04312.38
5.4.260.0110.03312.38
5.4.250.0060.03712.38
5.4.240.0050.03712.37
5.4.230.0050.03912.37
5.4.220.0070.03512.37
5.4.210.0050.03612.37
5.4.200.0120.03612.37
5.4.190.0030.03912.36
5.4.180.0080.03512.36
5.4.170.0050.03712.38
5.4.160.0070.03912.38
5.4.150.0070.03412.37
5.4.140.0060.03712.05
5.4.130.0060.03612.04
5.4.120.0090.03312.00
5.4.110.0080.03412.00
5.4.100.0050.05212.00
5.4.90.0070.05311.99
5.4.80.0110.03811.99
5.4.70.0070.03311.99
5.4.60.0050.03511.98
5.4.50.0030.03811.98
5.4.40.0040.03611.98
5.4.30.0020.05011.97
5.4.20.0030.03711.97
5.4.10.0080.03211.97
5.4.00.0110.03211.46
5.3.290.0050.04012.80
5.3.280.0070.03812.71
5.3.270.0070.03912.72
5.3.260.0090.03612.72
5.3.250.0050.03912.72
5.3.240.0060.03712.72
5.3.230.0060.03812.70
5.3.220.0060.03712.68
5.3.210.0040.04112.68
5.3.200.0080.03412.68
5.3.190.0070.03712.68
5.3.180.0050.03712.67
5.3.170.0060.03712.67
5.3.160.0070.03612.67
5.3.150.0050.03812.68
5.3.140.0040.03912.66
5.3.130.0050.04012.66
5.3.120.0070.03812.66
5.3.110.0040.04012.66
5.3.100.0060.03812.12
5.3.90.0060.03612.09
5.3.80.0030.03912.08
5.3.70.0040.03812.07
5.3.60.0080.03512.06
5.3.50.0020.04012.00
5.3.40.0060.03612.00
5.3.30.0050.03611.96
5.3.20.0060.03511.74
5.3.10.0050.03511.71
5.3.00.0070.03411.69
5.2.170.0060.0339.20
5.2.160.0040.0299.20
5.2.150.0050.0309.20
5.2.140.0060.0309.20
5.2.130.0030.0399.16
5.2.120.0040.0299.16
5.2.110.0030.0309.16
5.2.100.0070.0269.16
5.2.90.0090.0249.16
5.2.80.0020.0329.15
5.2.70.0060.0289.15
5.2.60.0060.0289.11
5.2.50.0040.0309.08
5.2.40.0050.0289.05
5.2.30.0050.0299.03
5.2.20.0060.0269.02
5.2.10.0030.0298.95
5.2.00.0030.0308.80
5.1.60.0050.0238.08
5.1.50.0060.0238.09
5.1.40.0060.0238.07
5.1.30.0040.0268.42
5.1.20.0040.0278.44
5.1.10.0050.0248.16
5.1.00.0020.0298.16
5.0.50.0040.0206.60
5.0.40.0050.0246.46
5.0.30.0070.0286.28
5.0.20.0050.0176.25
5.0.10.0030.0206.23
5.0.00.0030.0396.21
4.4.90.0020.0174.77
4.4.80.0020.0164.75
4.4.70.0030.0154.75
4.4.60.0020.0164.75
4.4.50.0020.0164.77
4.4.40.0020.0264.71
4.4.30.0040.0144.75
4.4.20.0010.0174.84
4.4.10.0020.0164.85
4.4.00.0030.0254.76
4.3.110.0020.0164.67
4.3.100.0030.0154.66
4.3.90.0020.0154.63
4.3.80.0040.0234.59
4.3.70.0010.0164.63
4.3.60.0010.0164.63
4.3.50.0010.0174.63
4.3.40.0040.0224.54
4.3.30.0030.0163.29
4.3.20.0040.0143.27
4.3.10.0030.0153.23
4.3.00.0100.0176.54

preferences:
38.05 ms | 401 KiB | 5 Q