Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Generacja ciagu liter
Forum PHP.pl > Forum > Przedszkole
icetab
Jak wygenerować ciąg liter całego alfabetu bez polskich znaków coś w ten deseń.

abc
azc
cdt

itd.
kadlub
chodzi ci o coś takiego
  1. <?php
  2. while($i < 3)
  3. {
  4. $passwd .= chr(rand(97,122));
  5. $i++;
  6. }
  7. echo $passwd;
  8. ?>
icetab
Chodzi mi o wszystkie dostępne możliwości wygenerowania ze znaków "qwertyuiopasdfghjklzxcvbnm" ciągu 3-literowego
Gabrielx
Cytat(kadlub @ 4.04.2011, 16:20:24 ) *
chodzi ci o coś takiego
  1. <?php
  2. while($i < 3)
  3. {
  4. $passwd .= chr(rand(97,122));
  5. $i++;
  6. }
  7. echo $passwd;
  8. ?>


Dodatkowo jeśli nie chcesz aby się dana litera z alfabetu się powtarzała dodajaesz konstrkukcję if-else(że jeśli już jest to losujesz jescze raz, aż do skutku). Ten ciąg znaków w tym przypadku można by było dodatkowo wrzucić do tablicy jednowymiarowej.

#EDIT

http://forum.php.pl/index.php?showtopic=90...mp;#entry455357
kadlub
Cytat(Gabrielx @ 4.04.2011, 15:25:07 ) *
Dodatkowo jeśli nie chcesz aby się dana litera z alfabetu się powtarzała dodajaesz konstrkukcję if-else(że jeśli już jest to losujesz jescze raz, aż do skutku). Ten ciąg znaków w tym przypadku można by było dodatkowo wrzucić do tablicy jednowymiarowej.

można to tylko przykład

a tych kombinacji to będzie sporo to jak losowanie lotto
sadistic_son
Do lotto to temu daleko, będzie ich 15624:
  1. for($i='a';$i<'z';++$i){
  2. for($j='a';$j<'z';++$j){
  3. for($k='a';$k<'z';++$k){
  4. echo "$i$j$k<br />";
  5. }}}
icetab
prawda spora kombinacja smile.gif

mam tu skrypt ale poprawnie nie generuje 3 znaków

  1. <?php
  2. function anagramy($wyraz) {
  3. for ($i=0;$i<strlen($wyraz);$i++) {
  4. $znak=$wyraz[$i];
  5. $ile=count($tmp);
  6. if ($ile==0) $tmp[]=$znak;
  7. else {
  8. for($k=0;$k<$ile;$k++) {
  9. $ciag=$tmp[$k];
  10. for($j=0;$j<=strlen($ciag);$j++) {
  11. $new[]= substr($ciag,3,$j).$znak.substr($ciag,$j);
  12. }
  13. }
  14. $tmp=$new;
  15. $new="";
  16. }
  17. }
  18. return $tmp;
  19. }
  20.  
  21. $tmp = anagramy("qwertyuiopasdfghjklzxcvbnm");
  22. for ($i=3;$i<count($tmp);$i++) echo $tmp[$i]."<br>";
  23. ?>
sadistic_son
Poprawka... możliwości jest 17576. Poprzedni mój kod generował bez litery z. Tutaj masz poprawnie:
  1. $num=1;
  2. for($i=97;$i<123;$i++){
  3. for($j=97;$j<123;$j++){
  4. for($k=97;$k<123;$k++){
  5. echo "$num) ".chr($i).chr($j).chr($k).'<br />';
  6. $num++;
  7.  
  8. }}}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.