3v4l.org

run code in 300+ PHP versions simultaneously
<?php function create_word(string $alphabet, int $index): string { $base = mb_strlen($alphabet); $fix = 1; $length = 1; foreach (range(1, $base) as $k) { $pow = pow($base, $k); if ($fix + $pow <= $index) { $fix += $pow; $length++; } else { break; } } $template = sprintf("%0{$length}d", base_convert($index - $fix, 10, $base)); $replace = implode('', range(0, $base)); return strtr($template, $replace, $alphabet); } for ($i = 1; $i <= 81; $i++) { echo $i . ' = '. create_word("abc", $i) . \PHP_EOL; }
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
1 = a 2 = b 3 = c 4 = aa 5 = ab 6 = ac 7 = ba 8 = bb 9 = bc 10 = ca 11 = cb 12 = cc 13 = aaa 14 = aab 15 = aac 16 = aba 17 = abb 18 = abc 19 = aca 20 = acb 21 = acc 22 = baa 23 = bab 24 = bac 25 = bba 26 = bbb 27 = bbc 28 = bca 29 = bcb 30 = bcc 31 = caa 32 = cab 33 = cac 34 = cba 35 = cbb 36 = cbc 37 = cca 38 = ccb 39 = ccc 40 = aaaa 41 = aaab 42 = aaac 43 = aaba 44 = aabb 45 = aabc 46 = aaca 47 = aacb 48 = aacc 49 = abaa 50 = abab 51 = abac 52 = abba 53 = abbb 54 = abbc 55 = abca 56 = abcb 57 = abcc 58 = acaa 59 = acab 60 = acac 61 = acba 62 = acbb 63 = acbc 64 = acca 65 = accb 66 = accc 67 = baaa 68 = baab 69 = baac 70 = baba 71 = babb 72 = babc 73 = baca 74 = bacb 75 = bacc 76 = bbaa 77 = bbab 78 = bbac 79 = bbba 80 = bbbb 81 = bbbc
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 1 = a 2 = b 3 = c 4 = aa 5 = ab 6 = ac 7 = ba 8 = bb 9 = bc 10 = ca 11 = cb 12 = cc 13 = aaa 14 = aab 15 = aac 16 = aba 17 = abb 18 = abc 19 = aca 20 = acb 21 = acc 22 = baa 23 = bab 24 = bac 25 = bba 26 = bbb 27 = bbc 28 = bca 29 = bcb 30 = bcc 31 = caa 32 = cab 33 = cac 34 = cba 35 = cbb 36 = cbc 37 = cca 38 = ccb 39 = ccc 40 = aaaa 41 = aaab 42 = aaac 43 = aaba 44 = aabb 45 = aabc 46 = aaca 47 = aacb 48 = aacc 49 = abaa 50 = abab 51 = abac 52 = abba 53 = abbb 54 = abbc 55 = abca 56 = abcb 57 = abcc 58 = acaa 59 = acab 60 = acac 61 = acba 62 = acbb 63 = acbc 64 = acca 65 = accb 66 = accc 67 = baaa 68 = baab 69 = baac 70 = baba 71 = babb 72 = babc 73 = baca 74 = bacb 75 = bacc 76 = bbaa 77 = bbab 78 = bbac 79 = bbba 80 = bbbb 81 = bbbc

preferences:
178.52 ms | 403 KiB | 210 Q