3v4l.org

run code in 300+ PHP versions simultaneously
<?php function ranking ($players_scores) { $players = array_column($players_scores, 0); $scores = array_column($players_scores, 1); array_multisort($scores, SORT_DESC, $players, SORT_ASC, $players_scores); return $players_scores; } function round_system ($players_scores) { $players_count ($players_scores); return round_count_system ($players_count); } function round_count_system ($players_count) { if ($players_count < 2) return no_match ($players_count); if ($players_count <= 5) return everybody_battles_everybody ($players_count); if ($players_count == 8) return groups_with_N_players (4, (int)($players_count/4)); if ($players_count % 4 == 0 && $players_count/4<=5) return four_groups ((int)($players_count/4)); if ( ($players_count % 6 == 0) && (3<=$players_count/6) && ($players_count/6<=5) ) return groups_with_N_players ((int)($players_count/6), 6); if ($players_count % 3 == 0) return groups_with_N_players (3, (int)($players_count/3)); if ($players_count % 2 == 0 && $players_count<=12) return groups_with_N_players ((int)($players_count/2), 2); echo swiss_round ($players_count); } /* */ /* $ranking = ranking ($players_scores); var_dump ($ranking); echo "<br><br>"; */ $players_scores = [ [1,0], [2,0], [3,0], [4,0], [5,0], [6,0], [7,0], [8,0] ]; $max_players = 30; for ($i=0;$i<=$max_players;$i++) { echo $i." = "; $system = round_count_system ($i); echo "\n"; } function no_match ($players_count) { echo "No match!"; } function everybody_battles_everybody ($players_count) { echo "Every player battles the other players."; } function four_groups ($players_count) { echo "4 groups with ".$players_count." players each."; } function groups_with_N_players ($n, $players_count) { echo $players_count." "."groups with ".$n." players each."; } function swiss_round ($players_count) { echo "swiss system with "; echo floor (log ($players_count, 2))+1; echo " rounds. "; if ($players_count%2) echo "Some players play only ".floor (log ($players_count, 2))." matchs."; } ?>

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.0110.00418.05
8.3.50.0090.00521.16
8.3.40.0100.01019.02
8.3.30.0070.00718.81
8.3.20.0000.00821.77
8.3.10.0040.00420.29
8.3.00.0090.00023.79
8.2.180.0120.00318.43
8.2.170.0030.01222.96
8.2.160.0110.00421.14
8.2.150.0090.00024.18
8.2.140.0080.00024.66
8.2.130.0040.00426.16
8.2.120.0040.00421.13
8.2.110.0060.00621.16
8.2.100.0090.00318.22
8.2.90.0030.00618.41
8.2.80.0000.00818.05
8.2.70.0000.00817.92
8.2.60.0050.00318.28
8.2.50.0090.00018.10
8.2.40.0000.00819.22
8.2.30.0000.00719.48
8.2.20.0040.00418.23
8.2.10.0000.00819.39
8.2.00.0040.00419.43
8.1.280.0080.00625.92
8.1.270.0040.00423.99
8.1.260.0030.00526.35
8.1.250.0050.00328.09
8.1.240.0060.00322.25
8.1.230.0040.00822.89
8.1.220.0000.00817.77
8.1.210.0000.00818.77
8.1.200.0000.01017.35
8.1.190.0000.00917.23
8.1.180.0040.00418.10
8.1.170.0040.00418.66
8.1.160.0040.00419.05
8.1.150.0040.00419.05
8.1.140.0050.00220.79
8.1.130.0030.00320.17
8.1.120.0040.00417.54
8.1.110.0030.00717.60
8.1.100.0000.01017.59
8.1.90.0030.00317.64
8.1.80.0040.00417.51
8.1.70.0030.00317.51
8.1.60.0030.00717.63
8.1.50.0080.00017.63
8.1.40.0000.01217.67
8.1.30.0080.00017.86
8.1.20.0040.00417.78
8.1.10.0040.00417.54
8.1.00.0040.00717.62
8.0.300.0040.00419.65
8.0.290.0050.00316.88
8.0.280.0000.00718.54
8.0.270.0070.00016.89
8.0.260.0000.00621.98
8.0.250.0040.00417.10
8.0.240.0050.00217.13
8.0.230.0070.00017.07
8.0.220.0070.00017.04
8.0.210.0000.00717.09
8.0.200.0070.00016.98
8.0.190.0000.00817.17
8.0.180.0040.00416.96
8.0.170.0090.00017.14
8.0.160.0000.00717.06
8.0.150.0040.00417.04
8.0.140.0050.00317.07
8.0.130.0000.00613.41
8.0.120.0050.00316.96
8.0.110.0040.00417.02
8.0.100.0040.00417.05
8.0.90.0060.00316.96
8.0.80.0080.00817.11
8.0.70.0000.00717.10
8.0.60.0040.00416.96
8.0.50.0040.00417.01
8.0.30.0130.00817.21
8.0.20.0170.00317.32
8.0.10.0020.00517.17
8.0.00.0120.00817.02
7.4.330.0060.00215.55
7.4.320.0000.00616.84
7.4.300.0000.00816.73
7.4.290.0070.00016.74
7.4.280.0060.00316.86
7.4.270.0000.00716.82
7.4.260.0040.00316.72
7.4.250.0040.00416.71
7.4.240.0010.00616.76
7.4.230.0000.00716.63
7.4.220.0000.00716.75
7.4.210.0060.01216.66
7.4.200.0040.00416.56
7.4.140.0070.01417.86
7.4.130.0090.00916.59
7.4.120.0150.01216.64
7.4.110.0070.01116.64
7.4.100.0140.00716.81
7.4.90.0090.00916.78
7.4.80.0180.00419.39
7.4.70.0110.00716.53
7.4.60.0060.01216.72
7.4.50.0030.01016.55
7.4.40.0100.01716.61
7.4.00.0000.01515.65
7.3.330.0030.00313.62
7.3.320.0000.00713.46
7.3.310.0040.00416.68
7.3.300.0040.00316.43
7.3.290.0060.00916.59
7.3.280.0040.01216.52
7.3.260.0100.01016.67
7.3.230.0050.01316.70
7.3.210.0090.01016.64
7.3.200.0190.00316.68
7.3.190.0110.00816.54
7.3.180.0190.00316.78
7.3.170.0120.00416.82
7.3.160.0130.00616.70
7.3.70.0110.00615.12
7.3.60.0140.00714.88
7.3.50.0000.01114.95
7.3.40.0090.00614.88
7.3.30.0070.01014.82
7.3.20.0160.01015.07
7.3.10.0100.00715.07
7.3.00.0180.00915.10
7.2.330.0130.00717.03
7.2.320.0060.01216.94
7.2.310.0130.01016.77
7.2.300.0100.01416.94
7.2.290.0070.01116.93
7.2.200.0130.01015.02
7.2.190.0160.00015.26
7.2.180.0140.00315.26
7.2.170.0120.00315.34
7.2.160.0030.01215.03
7.2.150.0120.00315.29
7.2.140.0090.00915.09
7.2.130.0230.00315.34
7.2.120.0130.01315.30
7.2.110.0080.00815.36
7.2.100.0150.00615.29
7.2.90.0230.00815.47
7.2.80.0130.01015.35
7.2.70.0120.00915.09
7.2.60.0090.00915.25
7.2.50.0120.00815.09
7.2.40.0170.01115.30
7.2.30.0160.01115.19
7.2.20.0190.00915.18
7.2.10.1070.00314.99
7.2.00.0130.00915.20
7.1.300.0100.01014.16
7.1.290.0120.00314.09
7.1.280.0090.00914.23
7.1.270.0380.00614.06
7.1.260.0160.00313.99
7.1.250.0150.00414.12

preferences:
63.74 ms | 401 KiB | 5 Q