Ce face array_unique
array_unique păstrează doar prima apariție a fiecărei valori. Cheile elementelor păstrate rămân aceleași, deci pot apărea „găuri” în numerotare.
Implicit, valorile sunt comparate ca text (SORT_STRING), deci 3, "3" și 3.0 sunt considerate identice. Comparația face diferența între litere mari și mici.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul original. |
$flags |
Opțional. Modul de comparare: SORT_STRING (implicit), SORT_NUMERIC, SORT_REGULAR. |
Ce returnează
Un tablou nou, fără duplicate.
Exemple
Exemplul 1: Etichete fără dubluri
<?php
$etichete = ["php", "mysql", "php", "css", "mysql"];
print_r(array_unique($etichete));
Rezultat
Array
(
[0] => php
[1] => mysql
[3] => css
)
Exemplul 2: Renumerotarea cheilor
Combină cu array_values pentru chei 0, 1, 2…
<?php
$orase = ["Iași", "Cluj", "Iași", "Brașov"];
print_r(array_values(array_unique($orase)));
Rezultat
Array
(
[0] => Iași
[1] => Cluj
[2] => Brașov
)
Exemplul 3: Litere mari și mici
<?php
$emailuri = ["ana@exemplu.ro", "ANA@exemplu.ro"];
echo count(array_unique($emailuri)) . "\n";
echo count(array_unique(array_map("strtolower", $emailuri)));
Rezultat
2
1
Greșeli frecvente
- Folosești
array_uniquepe un tablou de tablouri. Elementele sunt comparate ca text, toate devinArrayși sunt considerate identice, iar tu primești avertismentulArray to string conversion. Pentru tablouri de rânduri, folosește o cheie unică, de exemplu cuarray_column.
Comenzi înrudite
array_count_values: Numără de câte ori apare fiecare valoare într-un tablou.array_keys / array_values: Returnează doar cheile (array_keys) sau doar valorile (array_values) unui tablou.array_flip: Schimbă între ele cheile și valorile unui tablou.