3v4l.org

run code in 300+ PHP versions simultaneously
<?php $beta_lists = array ( 'Àpple' => 'http://www.abc.mno/apple/', 'Ball' => 'http://www.abc.mno/ball/', 'Builders' => 'http://www.abc.mno/builders/', 'Bowling' => 'http://www.abc.mno/bowling/', 'Correct' => 'http://www.abc.mno/correct/', 'Campaign' => 'http://www.abc.mno/compain/', 'Direct' => 'http://www.abc.mno/direct/', 'Degree' => 'http://www.abc.mno/degree/' ); ksort($beta_lists); $groups = array(); foreach ($beta_lists as $title => $value) { $groups[remove_accents(mb_substr($title, 0, 1))][$title] = $value; } ksort($groups); print_r($groups); echo count($groups); function remove_accents($string) { if ( !preg_match('/[\x80-\xff]/', $string) ) return $string; $chars = array( // Decompositions for Latin-1 Supplement chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', chr(195).chr(130) => 'A', chr(195).chr(131) => 'A', chr(195).chr(132) => 'A', chr(195).chr(133) => 'A', chr(195).chr(135) => 'C', chr(195).chr(136) => 'E', chr(195).chr(137) => 'E', chr(195).chr(138) => 'E', chr(195).chr(139) => 'E', chr(195).chr(140) => 'I', chr(195).chr(141) => 'I', chr(195).chr(142) => 'I', chr(195).chr(143) => 'I', chr(195).chr(145) => 'N', chr(195).chr(146) => 'O', chr(195).chr(147) => 'O', chr(195).chr(148) => 'O', chr(195).chr(149) => 'O', chr(195).chr(150) => 'O', chr(195).chr(153) => 'U', chr(195).chr(154) => 'U', chr(195).chr(155) => 'U', chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y', chr(195).chr(159) => 's', chr(195).chr(160) => 'a', chr(195).chr(161) => 'a', chr(195).chr(162) => 'a', chr(195).chr(163) => 'a', chr(195).chr(164) => 'a', chr(195).chr(165) => 'a', chr(195).chr(167) => 'c', chr(195).chr(168) => 'e', chr(195).chr(169) => 'e', chr(195).chr(170) => 'e', chr(195).chr(171) => 'e', chr(195).chr(172) => 'i', chr(195).chr(173) => 'i', chr(195).chr(174) => 'i', chr(195).chr(175) => 'i', chr(195).chr(177) => 'n', chr(195).chr(178) => 'o', chr(195).chr(179) => 'o', chr(195).chr(180) => 'o', chr(195).chr(181) => 'o', chr(195).chr(182) => 'o', chr(195).chr(182) => 'o', chr(195).chr(185) => 'u', chr(195).chr(186) => 'u', chr(195).chr(187) => 'u', chr(195).chr(188) => 'u', chr(195).chr(189) => 'y', chr(195).chr(191) => 'y', // Decompositions for Latin Extended-A chr(196).chr(128) => 'A', chr(196).chr(129) => 'a', chr(196).chr(130) => 'A', chr(196).chr(131) => 'a', chr(196).chr(132) => 'A', chr(196).chr(133) => 'a', chr(196).chr(134) => 'C', chr(196).chr(135) => 'c', chr(196).chr(136) => 'C', chr(196).chr(137) => 'c', chr(196).chr(138) => 'C', chr(196).chr(139) => 'c', chr(196).chr(140) => 'C', chr(196).chr(141) => 'c', chr(196).chr(142) => 'D', chr(196).chr(143) => 'd', chr(196).chr(144) => 'D', chr(196).chr(145) => 'd', chr(196).chr(146) => 'E', chr(196).chr(147) => 'e', chr(196).chr(148) => 'E', chr(196).chr(149) => 'e', chr(196).chr(150) => 'E', chr(196).chr(151) => 'e', chr(196).chr(152) => 'E', chr(196).chr(153) => 'e', chr(196).chr(154) => 'E', chr(196).chr(155) => 'e', chr(196).chr(156) => 'G', chr(196).chr(157) => 'g', chr(196).chr(158) => 'G', chr(196).chr(159) => 'g', chr(196).chr(160) => 'G', chr(196).chr(161) => 'g', chr(196).chr(162) => 'G', chr(196).chr(163) => 'g', chr(196).chr(164) => 'H', chr(196).chr(165) => 'h', chr(196).chr(166) => 'H', chr(196).chr(167) => 'h', chr(196).chr(168) => 'I', chr(196).chr(169) => 'i', chr(196).chr(170) => 'I', chr(196).chr(171) => 'i', chr(196).chr(172) => 'I', chr(196).chr(173) => 'i', chr(196).chr(174) => 'I', chr(196).chr(175) => 'i', chr(196).chr(176) => 'I', chr(196).chr(177) => 'i', chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij', chr(196).chr(180) => 'J', chr(196).chr(181) => 'j', chr(196).chr(182) => 'K', chr(196).chr(183) => 'k', chr(196).chr(184) => 'k', chr(196).chr(185) => 'L', chr(196).chr(186) => 'l', chr(196).chr(187) => 'L', chr(196).chr(188) => 'l', chr(196).chr(189) => 'L', chr(196).chr(190) => 'l', chr(196).chr(191) => 'L', chr(197).chr(128) => 'l', chr(197).chr(129) => 'L', chr(197).chr(130) => 'l', chr(197).chr(131) => 'N', chr(197).chr(132) => 'n', chr(197).chr(133) => 'N', chr(197).chr(134) => 'n', chr(197).chr(135) => 'N', chr(197).chr(136) => 'n', chr(197).chr(137) => 'N', chr(197).chr(138) => 'n', chr(197).chr(139) => 'N', chr(197).chr(140) => 'O', chr(197).chr(141) => 'o', chr(197).chr(142) => 'O', chr(197).chr(143) => 'o', chr(197).chr(144) => 'O', chr(197).chr(145) => 'o', chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe', chr(197).chr(148) => 'R',chr(197).chr(149) => 'r', chr(197).chr(150) => 'R',chr(197).chr(151) => 'r', chr(197).chr(152) => 'R',chr(197).chr(153) => 'r', chr(197).chr(154) => 'S',chr(197).chr(155) => 's', chr(197).chr(156) => 'S',chr(197).chr(157) => 's', chr(197).chr(158) => 'S',chr(197).chr(159) => 's', chr(197).chr(160) => 'S', chr(197).chr(161) => 's', chr(197).chr(162) => 'T', chr(197).chr(163) => 't', chr(197).chr(164) => 'T', chr(197).chr(165) => 't', chr(197).chr(166) => 'T', chr(197).chr(167) => 't', chr(197).chr(168) => 'U', chr(197).chr(169) => 'u', chr(197).chr(170) => 'U', chr(197).chr(171) => 'u', chr(197).chr(172) => 'U', chr(197).chr(173) => 'u', chr(197).chr(174) => 'U', chr(197).chr(175) => 'u', chr(197).chr(176) => 'U', chr(197).chr(177) => 'u', chr(197).chr(178) => 'U', chr(197).chr(179) => 'u', chr(197).chr(180) => 'W', chr(197).chr(181) => 'w', chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y', chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z', chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z', chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z', chr(197).chr(190) => 'z', chr(197).chr(191) => 's' ); $string = strtr($string, $chars); return $string; }

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.00717.13
8.3.50.0130.00716.84
8.3.40.0120.00919.54
8.3.30.0060.00919.09
8.3.20.0060.00324.18
8.3.10.0080.00024.66
8.3.00.0030.00626.16
8.2.180.0110.00725.92
8.2.170.0070.00722.96
8.2.160.0150.00022.96
8.2.150.0000.00825.66
8.2.140.0040.00424.66
8.2.130.0080.00026.16
8.2.120.0040.00421.00
8.2.110.0030.00620.72
8.2.100.0040.00818.03
8.2.90.0040.00418.25
8.2.80.0030.00619.13
8.2.70.0000.00818.05
8.2.60.0030.00618.34
8.2.50.0000.00819.51
8.2.40.0080.00021.05
8.2.30.0040.00419.39
8.2.20.0000.00818.28
8.2.10.0050.00319.47
8.2.00.0020.00519.51
8.1.280.0110.01125.92
8.1.270.0050.00323.99
8.1.260.0040.00726.35
8.1.250.0050.00328.09
8.1.240.0030.00623.86
8.1.230.0080.00423.78
8.1.220.0040.00418.04
8.1.210.0030.00618.77
8.1.200.0100.00017.73
8.1.190.0050.00317.73
8.1.180.0040.00419.13
8.1.170.0040.00418.95
8.1.160.0000.00719.23
8.1.150.0000.00719.03
8.1.140.0000.00719.09
8.1.130.0070.00020.21
8.1.120.0000.00817.80
8.1.110.0060.00317.76
8.1.100.0000.00917.82
8.1.90.0040.00417.79
8.1.80.0090.00017.77
8.1.70.0050.00317.66
8.1.60.0040.00417.84
8.1.50.0040.00417.77
8.1.40.0040.00417.88
8.1.30.0000.00817.94
8.1.20.0000.00818.05
8.1.10.0030.00518.03
8.1.00.0030.00517.79
8.0.300.0090.00018.77
8.0.290.0080.00017.13
8.0.280.0030.00518.70
8.0.270.0030.00317.22
8.0.260.0090.00018.62
8.0.250.0080.00017.35
8.0.240.0030.00317.36
8.0.230.0040.00417.39
8.0.220.0090.00017.14
8.0.210.0000.00717.19
8.0.200.0050.00317.30
8.0.190.0000.00817.21
8.0.180.0000.00917.32
8.0.170.0100.00017.31
8.0.160.0040.00417.24
8.0.150.0050.00317.23
8.0.140.0000.00717.24
8.0.130.0000.00613.67
8.0.120.0000.00817.27
8.0.110.0070.00017.33
8.0.100.0000.00717.21
8.0.90.0040.00717.14
8.0.80.0110.00817.24
8.0.70.0020.00517.13
8.0.60.0040.00417.21
8.0.50.0080.00017.11
8.0.30.0070.01117.41
8.0.20.0090.01817.75
8.0.10.0030.00517.32
8.0.00.0160.00317.13
7.4.330.0050.00015.55
7.4.320.0030.00316.84
7.4.300.0000.00716.88
7.4.290.0000.00816.80
7.4.280.0000.00816.81
7.4.270.0040.00416.88
7.4.260.0000.00713.71
7.4.250.0040.00416.81
7.4.240.0050.00317.00
7.4.230.0030.00616.89
7.4.220.0020.00516.65
7.4.210.0110.00616.91
7.4.200.0040.00416.88
7.4.130.0100.01216.89
7.4.120.0110.01516.88
7.4.110.0090.01217.02
7.4.100.0120.00617.07
7.4.90.0100.01016.84
7.4.80.0150.00919.39
7.4.70.0060.01216.98
7.4.60.0050.01316.89
7.4.50.0110.01416.81
7.4.40.0130.01816.77
7.4.30.0130.00916.72
7.4.20.0190.00916.75
7.4.10.0150.01216.71
7.4.00.0080.00816.79
7.3.330.0030.00316.64
7.3.320.0000.00613.70
7.3.310.0070.00016.58
7.3.300.0070.00016.66
7.3.290.0080.00916.68
7.3.260.0090.00916.75
7.3.240.0110.00816.78
7.3.230.0160.00617.02
7.3.210.0090.00916.86
7.3.200.0120.00916.91
7.3.190.0070.01016.92
7.3.180.0190.00816.64
7.3.170.0230.00316.57
7.3.160.0220.01116.73
7.3.150.0100.02316.65
7.3.140.0200.00516.58
7.3.130.0170.00716.50
7.3.120.0230.00616.89
7.3.110.0190.01116.47
7.3.100.0180.01216.66
7.3.90.0260.00916.64
7.3.80.0190.00816.42
7.3.70.0210.00516.72
7.3.60.0200.01016.72
7.3.50.0240.00716.73
7.3.40.0230.00616.75
7.3.30.0210.00616.73
7.3.20.0190.01216.69
7.3.10.0220.00716.71
7.3.00.0260.00716.82
7.2.330.0140.00616.94
7.2.320.0070.01017.03
7.2.310.0090.01516.93
7.2.300.0270.00817.08
7.2.290.0200.01016.97
7.2.280.0190.01317.02
7.2.270.0200.00616.75
7.2.260.0210.00716.87
7.2.250.0280.00316.97
7.2.240.0230.01016.97
7.2.230.0210.01417.13
7.2.220.0230.00916.70
7.2.210.0210.00616.81
7.2.200.0170.01316.86
7.2.190.0180.01117.00
7.2.180.0180.01416.93
7.2.170.0160.00916.98
7.2.160.0260.00616.99
7.2.150.0230.00917.05
7.2.140.0190.01116.93
7.2.130.0100.02317.09
7.2.120.0270.00616.89
7.2.110.0270.00417.09
7.2.100.0220.00617.11
7.2.90.0100.01516.86
7.2.80.0180.00516.91
7.2.70.0180.00716.91
7.2.60.0160.00516.86
7.2.50.0160.00917.03
7.2.40.0070.01417.00
7.2.30.0130.01316.75
7.2.20.0150.00616.76
7.2.10.0100.01316.74
7.2.00.0090.00916.91

preferences:
57.89 ms | 400 KiB | 5 Q