Jak losowo wymieszać kolejność elementów tablicy?


Chciałbyś przemieszać losowo elementy tablicy, tak, aby za każdym wykonaniem skryptu były w innej kolejności? W poniższym przykładzie pokazałem, jak w prosty sposób to zrobić.

<?
$tab[0] = "element 1";
$tab[1] = "element 2";
$tab[2] = "element 3";

echo $tab[0] . "<BR>";
shuffle($tab);
echo $tab[0];
?>

W powyższym przykładzie użyłem funkcji shuffle(), która miesza zawartość tablicy. Jeżeli używasz starszej wersji PHP może być konieczna wcześniejsza inicjacja generatora liczb losowych srand().

,

  1. #1 by RobertG on February 5th, 2009

    Jeżeli nie było by funkcji shuffle zwykłym rozwiązaniem jest:
    1. przydzielenie każdemu indeksowi w tablicy losowej liczby, nazwijmy ją x,
    2. posortowanie wartości w tablicy względem z

    PHP zawsze mnie drażniło tymi drobnymi funkcjami, jak właśnie to shuffle, funkcje do maskowania tagów i podobne (zamiast regexpów), różne API do połączenia z bazą danych etc. Jednym słowem IMHO język śmietnik :P

  2. #2 by em on January 3rd, 2010

    Jest tu błąd. w skrypcie nie ma zmiennej $tablica więc nie ma co mieszać.

  3. #3 by pukas on January 4th, 2010

    em :

    Jest tu błąd. w skrypcie nie ma zmiennej $tablica więc nie ma co mieszać.

    dzięki, poprawione :)

(will not be published)

  1. No trackbacks yet.