3v4l.org

run code in 300+ PHP versions simultaneously
<?php $letters = ['A' => 8, 'B' => 16, 'C' => 15, 'D' => 4, 'E' => 1]; var_export( randomPairs($letters) ); function randomPairs(array $letters): array { $result['paired'] = []; while (count($letters) > 1) { $keys = array_rand($letters, 2); shuffle($keys); $result['paired'][] = $keys[0] . $keys[1]; --$letters[$keys[0]]; --$letters[$keys[1]]; $letters = array_filter($letters); } $result['unpaired'] = $letters; return $result; }

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.4.120.0140.01116.73
7.4.110.0120.01216.57
7.4.100.0090.00916.63
7.4.90.0140.01116.45
7.4.80.0140.00416.52
7.4.70.0150.00916.53
7.4.60.0100.01316.40
7.4.50.0090.01216.45
7.4.40.0110.01116.33
7.4.30.0200.00016.50
7.4.20.0130.00316.62
7.4.10.0070.01016.59
7.4.00.0040.01416.63
7.3.240.0090.01316.57
7.3.230.0170.00716.44
7.3.220.0140.00316.74
7.3.210.0110.00916.61
7.3.200.0150.00616.30
7.3.190.0120.00616.65
7.3.180.0130.01016.65
7.3.170.0120.00616.66
7.3.160.0140.01016.47
7.3.150.0140.00516.52
7.3.140.0180.00316.71
7.3.130.0170.00316.57
7.3.120.0030.02016.64
7.3.110.0180.00416.41
7.3.100.0060.01216.40
7.3.90.0070.01016.34
7.3.80.0030.01316.73
7.3.70.0120.00616.54
7.3.60.0070.00916.29
7.3.50.0040.01416.45
7.3.40.0100.00716.43
7.3.30.0140.00816.20
7.3.20.0320.00616.36
7.3.10.0100.00816.50
7.3.00.0060.01216.05
7.2.340.0090.01116.78
7.2.330.0180.00616.76
7.2.320.0140.00716.32
7.2.310.0100.01016.67
7.2.300.0150.00616.61
7.2.290.0060.01316.83
7.2.280.0120.00616.65
7.2.270.0060.01216.80
7.2.260.0110.00816.47
7.2.250.0090.00916.33
7.2.240.0120.01216.63
7.2.230.0000.01916.80
7.2.220.0090.00916.76
7.2.210.0110.00816.61
7.2.200.0160.00316.66
7.2.190.0070.01316.59
7.2.180.0120.00616.61
7.2.170.0110.01116.49
7.2.160.0110.01016.33
7.2.150.0140.00316.31
7.2.140.0100.01016.59
7.2.130.0080.01316.52
7.2.120.0120.00616.38
7.2.110.0100.01016.47
7.2.100.0120.01216.34
7.2.90.0120.00616.48
7.2.80.0120.00916.32
7.2.70.0160.01216.30
7.2.60.0150.00816.34
7.2.50.0450.00416.14
7.2.40.0070.01516.56
7.2.30.0070.01116.43
7.2.20.0140.01116.69
7.2.10.0120.01216.37
7.2.00.0230.00416.61

preferences:
40.32 ms | 400 KiB | 5 Q