Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z funkcją array_rand
Forum PHP.pl > Forum > Przedszkole
sarq18
Witam.

Mam pewien problem z funkcją array_rand. Chodzi o losowanie sześciu liczb z zakresu od 1 do 49.
Kod wygląda tak
Kod
     for ($i = 0; $i < 1000; $i++){
      $liczby = range(1,49);
      $wynik = array_rand($liczby,6);
      foreach($wynik as $liczba)
      {
      
      echo $liczby[$liczba];
      echo ' ';
      }
      echo '
  ';
      }


Na stronie wyświetla się 1000 wyników. Problem w tym, że tylko ~700 wyników jest unikalnych, reszta to dokładnie takie same wyniki jak te pierwsze 700, są nawet wyświetlanie w takiej samej kolejności. Jeśli skopiuję kilka wyników i przeładuję stronę (czyli wyniki powinny zostać wylosowane na nowo) okazuje się, że wylosowane zostały znów te same wyniki (zupełnie jakby "pamięć" programu losującego została zapchana i ciągle losuje te same wyniki). Dlaczego tak się dzieje, da się to jakoś obejść?
I druga sprawa, dlaczego niektóry wyniki nie są wyświetlane od najmniejsze do największej liczby (większość jest wyświetlona dobrze)?

Pozdrawiam i z góry dziękuje za odpowiedzi.

EDIT:
Jeśli ma to jakieś znaczenie to korzystam z Krasnala w wersji 2.7.
mike
  1. <?php
  2.  
  3. for ($i = 0; $i < 1000; $i++) {
  4. $set = range(1, 49);
  5. shuffle($set);
  6. foreach (array_slice($set, 1, 6) as $number) {
  7. echo $number . ' ';
  8. }
  9. echo '<br />';
  10. }
  11.  
  12. ?>
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.