Autor | Zpráva | ||
---|---|---|---|
Ladha Profil * |
#1 · Zasláno: 12. 4. 2009, 21:39:01
Dobrý den,
zajímalo by mě jak se dá vytvořit v PHP něco jako generátor řetězců, který by mi vyhazoval nejdříve a, b, c, d, .., z a potom by jel zase od začátku tak že by přidal jeden nový znak, takže aa, ab, ac, ad, .., az, ba, bb ... jde to vytvořit nějak jednoduše? Děkuji;) |
||
Alphard Profil |
#2 · Zasláno: 13. 4. 2009, 00:46:06
<?php $ar = range("a", "z"); function vypis($hl, $s, &$ar) { if ($hl) foreach($ar as $char) { $char = $s.$char; vypis($hl-1, $char, $ar); } else { echo $s."<br>"; } } for($i=1; $i<=3; $i++) vypis($i, "", $ar); ?> Kvůli té (zbytečné) referenci tento script ale vyžaduje PHP 5. Avšak lze ho snadno přepsat do podoby s globální proměnnou. |
||
imploder Profil |
#3 · Zasláno: 13. 4. 2009, 16:55:49 · Upravil/a: imploder
Ladha
Pokud bys chtěl něco škálovatelnějšího, s čím by sis mohl pohrát, třeba využiješ tohle: <?php function zapis_cislici($cislice, &$buffer) { $buffer = chr(ord('a') + $cislice) . $buffer; } function zobraz_cislo($cislo, $zaklad, &$buffer) { while(true) { $cislice = $cislo % $zaklad; zapis_cislici($cislice, $buffer); if($cislo < $zaklad) break; $cislo = $cislo / $zaklad; } } ?> <html><body> <?php for($n=0; $n<1000; $n++) { $slovo = ""; zobraz_cislo($n, 26, $slovo); echo $n.": ".$slovo."<br>"; } ?> </body></html> Je to obecná funkce na zobrazení přirozeného čísla v určité soustavě - v tomto případě 26-kové - tolik je písmen v angl. abecedě. Funkce zobraz_cislo se dá jednoduše změnit aby šly písmena s diakritikou, zobrazovaly se místo nich obrázky, atd., obrátit pořadí písmen ve slově (tj. připojit číslici (tedy písmeno) místo zleva zprava) - co tě napadne. |
||
Ladha Profil * |
#4 · Zasláno: 15. 4. 2009, 20:12:11
Díky moc ;)
|
||
Časová prodleva: 15 let
|
0