Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Losowa kolejność w tablicy
Forum PHP.pl > Forum > Przedszkole
Thrandvil
Witam,
Załóżmy, że mam prostą tablicę, na którą składają się cyfry od 0 do 4 i chcę te cyfry poukładać w losowej kolejności, jednak tak, żeby każda występowała tylko raz
  1. <?php
  2. shuffle($tablica)
  3. ?>

zwraca niestety powtarzające się wartości. Jak można temu zaradzić?
A może jest jakiś dużo prostszy sposób na uzyskanie takich losowo ułożonych liczb, a ja za bardzo kombinuje?
Z góry dziękuję za każdą pomoc smile.gif
Zyx
O ile mi wiadomo, to shuffle() robi dokładnie to, co napisałeś - nadaje elementom tablicy losową kolejność. Sprawdź sam:

  1. <?php
  2. $array = array(0, 1, 2, 3, 4);
  3. shuffle($array);
  4. var_dump($array);
  5. ?>
Thrandvil
hm... ciekawe ... więc błąd muszę mieć gdzieś wcześniej ... tak czy inaczej, dzięki.
Moli
  1. <?php
  2. public function shuffle($array,$sArray=false)
  3. {
  4. $nArray  = array();
  5. $aResult  = array();
  6.  
  7. foreach($array as $key => $value)
  8. {
  9. $nArray[] = $key;
  10.  
  11. if ( $sArray and is_array($value) )
  12. $array[$key] = $this->shuffle($value,true);
  13. }
  14.  
  15. shuffle($nArray);
  16.  
  17. foreach($nArray as $key)
  18. $aResult[$key] = $array[$key];
  19.  
  20. return $aResult;
  21. }
  22. ?>
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.