3v4l.org

run code in 300+ PHP versions simultaneously
<?php function test($array) { try { $array = (object)$array; return is_indexed_array($array); } catch (Exception $e) { echo $e->getMessage(); return 'error'; } } assert(test([]) === true); assert(test(['', 'a', 'b']) === true); // proper indexed array; also, to catch wrong isset usage assert(test([1 => 'a', 2 => 'b', 3 => 'c']) === false); // sequential but not 0-based assert(test([-1 => '', 0 => '', 1 => 'a']) === false); // sequential but not 0-based assert(test([0 => '', 2 => 'b', 3 => 'c']) === false); // 1 index missing assert(test([0 => '', 2 => 'b', 1 => 'a']) === false); // numeric but unordered assert(test([0 => '']) === true); // single item assert(test([1 => 'a']) === false); // single item assert(test([NAN]) === true); assert(test([NAN => '']) === false); assert(test([INF]) === true); assert(test([INF => '']) === false); assert(test([' ' => '', 'a' => 'a', 'b' => 'b']) === false); // proper associative array assert(test([' ' => '']) === false); // single item; also, associative even though '' == 0 assert(test([' ' => '', 1 => 'a']) === false); // first key string but rest not assert(test([' ' => '', 0 => '']) === false); // first key string but rest not assert(test([0 => '', 'a' => 'a']) === false); // first key numeric but rest not assert(test([' 0' => '']) === false); // associative even though ' 0' == 0 assert(test(['00' => '']) === false); // associative even though '00' == 0 assert(test(['0*' => '']) === false); // associative even though '0*' == 0 assert(test(['0.0' => '']) === false); // associative even though '0.0' == 0.0 assert(test(['0x0' => '']) === false); // associative even though '0x0' == 0 assert(test(['0e0' => '']) === false); // associative even though '0e0' == 0 assert(test(['-0' => '']) === false); // associative even though '0e0' == 0 $obj = new stdClass; $obj->{0} = ''; assert(test((array)$obj) === false); // to catch ['0' => ''] like situations function is_indexed_array($array) { foreach (array_keys($array) as $k => $v) if ($k !== $v) return false; return true; }

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.0150.00316.88
8.3.50.0160.00421.99
8.3.40.0040.01118.96
8.3.30.0080.00818.88
8.3.20.0050.00220.11
8.3.10.0050.00223.65
8.3.00.0040.00419.38
8.2.180.0150.00616.50
8.2.170.0150.00022.96
8.2.160.0140.00020.64
8.2.150.0000.00824.18
8.2.140.0080.00024.66
8.2.130.0030.00620.60
8.2.120.0000.00726.35
8.2.110.0060.00320.45
8.2.100.0120.00018.05
8.2.90.0000.00819.12
8.2.80.0040.00417.97
8.2.70.0060.00317.75
8.2.60.0030.00618.03
8.2.50.0040.00418.07
8.2.40.0000.00919.36
8.2.30.0070.00020.81
8.2.20.0090.00017.63
8.2.10.0000.00818.09
8.2.00.0050.00318.08
8.1.280.0060.00925.92
8.1.270.0040.00423.79
8.1.260.0040.00428.09
8.1.250.0000.00828.09
8.1.240.0180.00324.03
8.1.230.0080.00417.55
8.1.220.0040.00417.79
8.1.210.0080.00018.77
8.1.200.0060.00317.38
8.1.190.0050.00317.89
8.1.180.0080.00018.10
8.1.170.0030.00618.59
8.1.160.0070.00022.02
8.1.150.0080.00018.91
8.1.140.0040.00419.61
8.1.130.0000.00717.64
8.1.120.0000.00817.38
8.1.110.0000.00717.54
8.1.100.0040.00417.47
8.1.90.0070.00017.50
8.1.80.0030.00617.35
8.1.70.0030.00617.45
8.1.60.0030.00617.57
8.1.50.0040.00417.58
8.1.40.0030.00617.59
8.1.30.0000.00817.77
8.1.20.0060.00317.66
8.1.10.0040.00417.55
8.1.00.0050.00317.61
8.0.300.0070.00018.77
8.0.290.0070.00016.75
8.0.280.0000.00718.34
8.0.270.0030.00317.29
8.0.260.0000.00717.20
8.0.250.0000.00717.08
8.0.240.0000.00716.94
8.0.230.0030.00317.01
8.0.220.0070.00017.01
8.0.210.0040.00417.04
8.0.200.0070.00017.05
8.0.190.0050.00316.94
8.0.180.0050.00316.96
8.0.170.0040.00417.01
8.0.160.0070.00017.11
8.0.150.0030.00516.81
8.0.140.0030.00516.94
8.0.130.0000.00513.44
8.0.120.0000.00816.83
8.0.110.0000.00716.98
8.0.100.0040.00416.88
8.0.90.0000.00716.85
8.0.80.0100.00716.96
8.0.70.0050.00317.02
8.0.60.0000.00816.82
8.0.50.0080.00016.81
8.0.30.0130.00717.09
8.0.20.0170.00417.42
8.0.10.0040.00417.04
8.0.00.0130.00716.84
7.4.330.0000.00616.77
7.4.320.0000.00616.55
7.4.300.0060.00016.70
7.4.290.0000.00716.57
7.4.280.0000.00816.48
7.4.270.0030.00316.51
7.4.260.0030.00616.58
7.4.250.0000.00716.66
7.4.240.0020.00516.60
7.4.230.0000.00716.60
7.4.220.0040.01616.78
7.4.210.0100.01416.66
7.4.200.0030.00316.49
7.4.160.0060.00916.66
7.4.150.0060.01317.40
7.4.140.0130.00717.86
7.4.130.0100.01016.65
7.4.120.0120.00816.67
7.4.110.0130.00616.58
7.4.100.0130.00616.71
7.4.90.0140.00716.74
7.4.80.0110.00719.39
7.4.70.0130.00316.68
7.4.60.0070.01016.72
7.4.50.0090.00616.71
7.4.40.0090.01116.78
7.4.30.0130.00716.61
7.4.00.0080.01015.14
7.3.330.0050.00013.41
7.3.320.0000.00513.46
7.3.310.0070.00016.36
7.3.300.0000.00716.45
7.3.290.0060.01116.47
7.3.280.0090.00816.45
7.3.270.0150.00917.40
7.3.260.0060.01116.44
7.3.250.0090.01016.42
7.3.240.0050.01316.60
7.3.230.0140.00416.70
7.3.210.0120.00616.60
7.3.200.0030.01516.56
7.3.190.0100.01016.73
7.3.180.0100.00716.46
7.3.170.0110.00616.44
7.3.160.0060.01016.69
7.3.120.0090.00814.92
7.3.110.0050.01214.97
7.3.100.0070.00715.01
7.3.90.0080.00814.98
7.3.80.0080.00914.79
7.3.70.0030.00914.91
7.3.60.0070.00814.92
7.3.50.0060.00615.06
7.3.40.0070.01014.96
7.3.30.0090.00815.01
7.3.20.0050.00816.62
7.3.10.0090.00916.53
7.3.00.0090.01116.62
7.2.330.0100.00716.77
7.2.320.0070.01016.80
7.2.310.0060.01016.90
7.2.300.0090.01316.52
7.2.290.0090.00916.75
7.2.250.0070.01314.78
7.2.240.0020.01214.96
7.2.230.0070.01015.13
7.2.220.0090.00715.12
7.2.210.0070.00815.17
7.2.200.0080.00714.97
7.2.190.0040.01115.12
7.2.180.0030.01415.11
7.2.170.0100.00715.14
7.2.160.0100.00615.17
7.2.150.0090.00616.98
7.2.140.0140.00416.77
7.2.130.0040.01516.73
7.2.120.0080.00616.76
7.2.110.0110.00516.66
7.2.100.0110.00916.66
7.2.90.0110.01017.00
7.2.80.0090.00616.86
7.2.70.0140.00716.85
7.2.60.0100.00616.82
7.2.50.0090.00816.58
7.2.40.0080.00816.70
7.2.30.0060.00816.79
7.2.20.0080.00716.79
7.2.10.0110.00616.53
7.2.00.0090.00617.49
7.1.330.0050.01115.81
7.1.320.0080.00415.82
7.1.310.0090.00515.52
7.1.300.0020.01115.77
7.1.290.0050.01115.55
7.1.280.0060.00715.77
7.1.270.0030.00615.60
7.1.260.0020.01415.78
7.1.250.0100.00615.59
7.1.200.0110.00415.79
7.1.100.0000.01118.08
7.1.70.0110.01416.89
7.1.60.0110.01419.36
7.1.50.0030.01416.91
7.1.00.0030.07722.41
7.0.200.0040.00416.67
7.0.60.0070.03719.91
7.0.50.0200.06017.80
7.0.40.0030.06020.25
7.0.30.0170.04020.07
7.0.20.0300.06720.24
7.0.10.0100.05020.15
7.0.00.0200.06720.22
5.6.280.0000.03721.28
5.6.210.0030.08720.72
5.6.200.0070.07318.34
5.6.190.0000.06320.84
5.6.180.0470.06320.62
5.6.170.0270.06320.87
5.6.160.0070.08720.73
5.6.150.0030.06318.32
5.6.140.0100.08018.39
5.6.130.0000.04318.36
5.6.120.0070.06021.30
5.6.110.0130.08021.37
5.6.100.0030.06321.27
5.6.90.0100.04321.23
5.6.80.0100.07320.62
5.5.350.0270.07320.58
5.5.340.0030.08318.17
5.5.330.0030.04320.64
5.5.320.0000.08720.67
5.5.310.0370.07320.48
5.5.300.0130.07718.10
5.5.290.0070.07018.18
5.5.280.0100.03320.91
5.5.270.0030.05720.98
5.5.260.0130.08021.21
5.5.250.0000.04321.04
5.5.240.0300.06320.53

preferences:
37.89 ms | 401 KiB | 5 Q