3v4l.org

run code in 300+ PHP versions simultaneously
<?php function num2str($num) { $nul='ноль'; $ten=array( array('','один','два','три','четыре','пять','шесть','семь', 'восемь','девять'), array('','одна','две','три','четыре','пять','шесть','семь', 'восемь','девять'), ); $a20=array('десять','одиннадцать','двенадцать','тринадцать','четырнадцать' ,'пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать'); $tens=array(2=>'двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят' ,'восемьдесят','девяносто'); $hundred=array('','сто','двести','триста','четыреста','пятьсот','шестьсот', 'семьсот','восемьсот','девятьсот'); $unit=array( // Units array('копейка' ,'копейки' ,'копеек', 1), array('рубль' ,'рубля' ,'рублей' ,0), array('тысяча' ,'тысячи' ,'тысяч' ,1), array('миллион' ,'миллиона','миллионов' ,0), array('миллиард','милиарда','миллиардов',0), ); // list($rub,$kop) = explode('.',sprintf("%015.2f", floatval($num))); $out = array(); if (intval($rub)>0) { foreach(str_split($rub,3) as $uk=>$v) { // by 3 symbols if (!intval($v)) continue; $uk = sizeof($unit)-$uk-1; // unit key $gender = $unit[$uk][3]; list($i1,$i2,$i3) = array_map('intval',str_split($v,1)); // mega-logic $out[] = $hundred[$i1]; # 1xx-9xx if ($i2>1) $out[]= $tens[$i2].' '.$ten[$gender][$i3]; # 20-99 else $out[]= $i2>0 ? $a20[$i3] : $ten[$gender][$i3]; # 10-19 | 1-9 // units without rub & kop if ($uk>1) $out[]= morph($v,$unit[$uk][0],$unit[$uk][1],$unit[$uk][2]); } //foreach } else $out[] = $nul; $out[] = morph(intval($rub), $unit[1][0],$unit[1][1],$unit[1][2]); // rub $out[] = $kop.' '.morph($kop,$unit[0][0],$unit[0][1],$unit[0][2]); // kop return trim(preg_replace('/ {2,}/', ' ', join(' ',$out))); } /** * Склоняем словоформу * @ author runcore */ function morph($n, $f1, $f2, $f5) { $n = abs(intval($n)) % 100; if ($n>10 && $n<20) return $f5; $n = $n % 10; if ($n>1 && $n<5) return $f2; if ($n==1) return $f1; return $f5; } $x = "100001001"; echo num2str($x);

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.0100.01016.88
8.3.50.0150.00616.61
8.3.40.0130.00618.91
8.3.30.0120.00319.15
8.3.20.0030.00521.85
8.3.10.0080.00021.93
8.3.00.0030.00519.69
8.2.180.0110.00716.75
8.2.170.0110.01122.96
8.2.160.0140.00320.35
8.2.150.0000.00824.18
8.2.140.0040.00424.66
8.2.130.0080.00020.47
8.2.120.0070.00026.35
8.2.110.0060.00320.51
8.2.100.0130.00017.97
8.2.90.0040.00419.22
8.2.80.0040.00418.03
8.2.70.0080.00017.75
8.2.60.0050.00318.04
8.2.50.0030.00618.10
8.2.40.0000.00820.42
8.2.30.0040.00421.18
8.2.20.0070.00018.12
8.2.10.0000.00818.24
8.2.00.0040.00418.23
8.1.280.0040.01125.92
8.1.270.0080.00018.98
8.1.260.0050.00326.35
8.1.250.0040.00428.09
8.1.240.0030.00622.13
8.1.230.0080.00419.15
8.1.220.0000.00817.79
8.1.210.0040.00418.77
8.1.200.0000.01317.47
8.1.190.0050.00317.60
8.1.180.0080.00018.10
8.1.170.0080.00018.80
8.1.160.0040.00419.02
8.1.150.0070.00018.86
8.1.140.0000.00719.55
8.1.130.0030.00318.94
8.1.120.0040.00417.54
8.1.110.0040.00417.63
8.1.100.0050.00317.66
8.1.90.0070.00317.59
8.1.80.0040.00417.57
8.1.70.0000.00817.52
8.1.60.0030.00617.77
8.1.50.0070.00417.71
8.1.40.0050.00317.60
8.1.30.0030.00617.66
8.1.20.0030.00517.77
8.1.10.0040.00417.71
8.1.00.0000.00817.68
8.0.300.0060.00318.77
8.0.290.0080.00016.75
8.0.280.0000.00818.53
8.0.270.0030.00317.30
8.0.260.0030.00318.84
8.0.250.0050.00317.04
8.0.240.0040.00417.09
8.0.230.0040.00417.14
8.0.220.0030.00317.09
8.0.210.0030.00317.04
8.0.200.0040.00417.02
8.0.190.0040.00417.02
8.0.180.0000.00817.10
8.0.170.0040.00416.98
8.0.160.0050.00217.06
8.0.150.0050.00316.89
8.0.140.0060.00616.91
8.0.130.0060.00013.45
8.0.120.0050.00316.96
8.0.110.0070.00017.16
8.0.100.0050.00316.96
8.0.90.0040.00416.90
8.0.80.0070.00717.12
8.0.70.0040.00416.97
8.0.60.0040.00417.06
8.0.50.0040.00416.95
8.0.30.0110.00817.37
8.0.20.0070.01317.42
8.0.10.0000.00817.21
8.0.00.0150.00417.01
7.4.330.0000.00615.55
7.4.320.0000.00616.73
7.4.300.0060.00316.82
7.4.290.0000.00716.84
7.4.280.0000.00716.82
7.4.270.0040.00316.76
7.4.260.0000.00716.82
7.4.250.0060.00316.75
7.4.240.0040.00416.87
7.4.230.0040.00416.91
7.4.220.0090.00916.80
7.4.210.0030.01716.85
7.4.200.0040.00416.63
7.4.160.0070.01216.73
7.4.150.0120.00617.40
7.4.140.0100.01217.86
7.4.130.0200.00616.62
7.4.120.0070.01216.75
7.4.110.0090.00916.67
7.4.100.0090.00916.64
7.4.90.0080.00816.78
7.4.80.0130.01019.39
7.4.70.0080.00816.75
7.4.60.0090.00716.75
7.4.50.0040.00716.64
7.4.40.0120.00916.79
7.4.30.0070.01016.80
7.4.00.0130.00315.22
7.3.330.0060.00013.36
7.3.320.0030.00313.36
7.3.310.0000.00716.45
7.3.300.0030.00316.56
7.3.290.0060.00816.56
7.3.280.0100.00916.53
7.3.270.0110.00717.40
7.3.260.0140.00816.78
7.3.250.0110.00916.57
7.3.240.0130.00716.54
7.3.230.0070.01016.63
7.3.210.0070.01016.53
7.3.200.0070.01016.74
7.3.190.0120.00916.63
7.3.180.0070.01016.66
7.3.170.0030.01416.71
7.3.160.0040.01316.83
7.3.120.0070.00717.15
7.3.110.0090.00617.15
7.3.100.0000.01417.15
7.3.90.0070.00717.15
7.3.80.0070.00317.15
7.3.70.0070.01017.15
7.3.60.0030.01317.15
7.3.50.0130.00317.15
7.3.40.0040.00717.15
7.3.30.0000.01417.15
7.3.20.0080.00817.15
7.3.10.0060.00716.85
7.3.00.0100.00516.84
7.2.330.0080.00916.84
7.2.320.0120.00616.86
7.2.310.0070.01716.95
7.2.300.0150.00916.87
7.2.290.0080.01016.89
7.2.240.0100.00617.15
7.2.230.0060.00617.15
7.2.220.0080.00417.15
7.2.210.0030.00917.15
7.2.200.0070.00417.15
7.2.190.0100.00617.15
7.2.180.0040.01517.15
7.2.170.0040.01117.15
7.2.160.0060.01017.15
7.2.150.0070.01017.15
7.2.140.0060.01217.34
7.2.130.0080.00717.19
7.2.120.0050.00817.06
7.2.110.0050.00817.02
7.2.100.0060.01117.06
7.2.90.0060.01117.05
7.2.80.0050.00817.08
7.2.70.0060.00817.30
7.2.60.0040.01017.14
7.2.50.0030.00817.18
7.2.40.0080.00817.22
7.2.30.0070.00717.18
7.2.20.0080.00817.01
7.2.10.0060.01217.14
7.2.00.0050.01117.13
7.1.330.0070.00717.15
7.1.320.0000.01617.15
7.1.310.0040.00817.15
7.1.300.0070.00417.15
7.1.290.0080.00817.15
7.1.280.0070.00317.15
7.1.270.0000.01117.15
7.1.260.0090.00617.15
7.1.250.0030.01016.57
7.1.240.0060.01215.93
7.1.230.0070.00716.13
7.1.220.0040.00415.75
7.1.210.0060.00315.87
7.1.200.0080.00816.07
7.1.190.0040.00816.07
7.1.180.0100.00315.94
7.1.170.0050.00515.90
7.1.160.0060.00315.74
7.1.150.0060.00616.07
7.1.140.0070.00416.09
7.1.130.0060.00616.13
7.1.120.0040.00815.80
7.1.110.0090.00616.00
7.1.100.0050.00515.95
7.1.90.0030.00715.91
7.1.80.0080.00516.00
7.1.70.0090.00316.67
7.1.60.0240.01124.73
7.1.50.0200.01524.51
7.1.40.0220.01024.62
7.1.30.0260.00324.48
7.1.20.0230.00724.47
7.1.10.0180.01215.57
7.1.00.0160.00815.42
7.0.330.0000.01215.68
7.0.320.0000.01215.63
7.0.310.0000.01215.83
7.0.300.0000.01515.66
7.0.290.0040.01115.34
7.0.280.0120.00015.61
7.0.270.0060.00615.61
7.0.260.0070.00315.62
7.0.250.0030.00615.48
7.0.240.0100.00315.61
7.0.230.0000.00915.81
7.0.220.0060.00615.59
7.0.210.0040.00815.64
7.0.200.0140.00815.42
7.0.190.0200.00515.37
7.0.180.0210.00415.24
7.0.170.0150.00715.04
7.0.160.0170.00315.04
7.0.150.0210.01015.15
7.0.140.0190.00615.32
7.0.130.0090.00515.09
7.0.120.0130.01115.36
7.0.110.0130.01315.31
7.0.100.0150.01215.10
7.0.90.0160.00715.34
7.0.80.0170.01015.16
7.0.70.0280.01015.25
7.0.60.0170.00715.20
7.0.50.0200.00815.17
7.0.40.0200.01414.31
7.0.30.0210.01014.28
7.0.20.0150.00914.34
7.0.10.0220.00914.21
7.0.00.0600.00814.31
5.6.380.0000.00914.32

preferences:
68.93 ms | 401 KiB | 5 Q