Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Losowe generowanie ciągu liczb/cyfr
Forum PHP.pl > Forum > Przedszkole
viva
Wymyśliłem coś takiego :
CODE

<?php
$threeLetters = array();
$alphabet = range('A', 'Z');
for ($i = 0; $i < 26; $i++){
for ($j = 0; $j < 26; $j++){
for ($k = 0; $k < 26; $k++){
$threeLetters[] = $alphabet[$i] . $alphabet[$j] . $alphabet[$k];
echo($_POST['input'].$alphabet[$i].$alphabet[$j].$alphabet[$k]."");
echo("<br />");
}
}
}
?>

Jak to teraz zrepecić by generowały się również cyfry od 1 do 9 oraz znak "-" ?
marcio
A co chcesz zrobic jak chcesz poprostu dodac jakis wygenerowany ciag to zrob tak:
  1. <?php
  2. $hash = substr(md5(time()), 0, 4);
  3. ?>
viva
Nie ma to być jakiś chodzi mi o ciąg przykładowo składający się z 3 znaków od a do z, od 1 do 9 oraz aby w generowaniu zawarty był też znak "-"
erix
Cytat
Jak to teraz zrepecić by generowały się również cyfry od 1 do 9 oraz znak "-" ?

A sobie kolega łaskawie popatrzy: http://pl.wikipedia.org/wiki/Ascii
ShadowD
Nie wiem czy zrozumiałem istotę problemu, ale wydaje mi się że można by zastosować funkcję rand() zamiast tych 3xpoetli np tak:

A można i tak:
  1. <?php
  2.  
  3.  //dalne
  4.  $dlugoscCiagu=10;
  5.  $znaki=array('a','ą','b','c','ć','d','e','ę','f','g','h','i','j','k','l','ł','m','n','ń','o','ó','p','r','s','ś','t','u','w','y','z','ź','ż',1,2,3,4,5,6,7,8,9,'-');
  6.  
  7.  
  8.  
  9.  do
  10.  {
  11.    $los=rand(1,43);
  12.  
  13.    $losowyCiag.=$znaki[$los];
  14.    
  15.    $i++;
  16.  }
  17.  while($i<=$dlugoscCiagu);
  18.  
  19.  echo $losowyCiag;
  20.  
  21. ?>


EDIT:
Poprawiłem kod i dzieła... ;p
viva
Działa ale nie do końca mnie zrozumieliście. Wynik tego ala skryptu ma to być ciąg wszystkich dostępnych znaków. Nie pojedyńczy wynik. ShadowD wrzuć sobie ten co ja podałem zrozumiesz o co mi chodzi. Poza tym ma być w kolejności alfabetycznej. Totalnie nie chodzi mi o jakąkolwiek optymalizacje tego. Liczy się dla mnie sam wynik.
ShadowD
Ok mają to być wszystkie możliwości wypisania [a-z], [0-9] i [-] ułożone alfabetycznie, z maksymalną długością 3 znaków??
viva
Do tego bez powtórek, jeden wynik pod drugim - tak jak w tym co podałem, bym był wdzięczny jakbyś był skłonny przekształcić właśnie ten code co podałem ja.
ShadowD
Proszę:

  1. <?php
  2. //znaki
  3.  $znaki=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','y','z',1,2,3,4,5,6,7,8,9,'-');
  4.  
  5.  for ($i = 0; $i < 33; $i++)
  6.    {
  7.    for ($j = 0; $j < 33; $j++)
  8.    {
  9.      for ($k = 0; $k < 33; $k++)
  10.      {
  11.        echo $znaki[$i].$znaki[$j].$znaki[$k];
  12.        
  13.        echo("<br />");
  14.      }
  15.    }
  16.  }
  17. ?>


Trochę upiększyłem dodatkowo teraz bez problemu możesz dodawać nowe znaki, jak coś jeszcze to pisz... winksmiley.jpg
viva
I już masz dużego plusa smile.gif Ostatnia rzecz ... chciałbym wyeliminować znak "-" z początku i końca każdego słowa krótko mówiąc chciałbym aby był on tylko pośrodku liter/cyfr. Da rade to jakoś zrobić ? Jeśli nie to i tak nie szkodzi ;]
ShadowD
Jak się chce to można wszystko... winksmiley.jpg

Kod:
  1. <?php
  2. //znaki
  3. $znaki=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','y','z',1,2,3,4,5,6,7,8,9,'-');
  4.  
  5.  for ($i = 0; $i < 33; $i++)
  6.  {
  7.    if($znaki[$i]!=='-')  
  8.      for ($j = 0; $j < 33; $j++)
  9.      {
  10.        for ($k = 0; $k < 33; $k++)
  11.        {
  12.          if($znaki[$k]!=='-')
  13.            echo $znaki[$i].$znaki[$j].$znaki[$k].'<br />';
  14.        }
  15.      }
  16.  }
  17. ?>
viva
Jesteś wielki ! Człowieku serdeczne dzięki !
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.