shuffle în PHP

Amestecă elementele unui tablou într-o ordine aleatorie.

Sintaxă
shuffle(array &$array): true

Ce face shuffle

shuffle modifică direct tabloul și pune elementele într-o ordine întâmplătoare. Cheile vechi se pierd: tabloul primește chei noi, 0, 1, 2…

Nu folosi shuffle pentru ceva legat de securitate. Pentru amestecare sigură există (new Random\Randomizer())->shuffleArray(), din PHP 8.2.

Parametri

Parametru Descriere
$array Tabloul amestecat. Este modificat direct.

Ce returnează

Întotdeauna true.

Exemple

Exemplul 1: Întrebări de test în ordine aleatorie

Rezultatul diferă la fiecare rulare.

<?php
$intrebari = ["Î1", "Î2", "Î3", "Î4", "Î5"];

shuffle($intrebari);
echo implode(", ", $intrebari);

Rezultat posibil (diferă la fiecare rulare)

Î3, Î1, Î5, Î2, Î4

Exemplul 2: Cheile text se pierd

<?php
$capitale = ["RO" => "București", "FR" => "Paris"];

shuffle($capitale);
var_dump(array_is_list($capitale));

Rezultat

bool(true)

Greșeli frecvente

  • Scrii $lista = shuffle($lista);. Funcția returnează true, iar tabloul este pierdut.
  • Amesteci un tablou asociativ și pierzi cheile. Amestecă lista de chei (array_keys) și citește valorile după ele.

Comenzi înrudite

  • array_rand: Alege una sau mai multe chei la întâmplare dintr-un tablou.
  • random_int: Generează un număr întreg aleatoriu, sigur, între două valori.
  • sort: Sortează elementele unui tablou crescător. Există și variante pentru descrescător și pentru chei.