Ce face natsort / natcasesort
Sortarea obișnuită compară textele caracter cu caracter, așa că "img10" ajunge înaintea lui "img2". natsort recunoaște numerele din text și le compară ca numere.
natsort face diferența între litere mari și mici: majusculele vin înaintea literelor mici. natcasesort face aceeași sortare, dar ignoră majusculele. Ambele păstrează cheile și modifică direct tabloul.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul sortat. Este modificat direct. |
Ce returnează
Întotdeauna true.
Exemple
Exemplul 1: sort față de natsort
<?php
$fisiere = ["img12.png", "img10.png", "img2.png", "img1.png"];
$simplu = $fisiere;
sort($simplu);
echo implode(", ", $simplu) . "\n";
natsort($fisiere);
echo implode(", ", $fisiere);
Rezultat
img1.png, img10.png, img12.png, img2.png
img1.png, img2.png, img10.png, img12.png
Exemplul 2: Majuscule: natsort și natcasesort
Cheile originale se păstrează. Folosește array_values dacă vrei chei 0, 1, 2…
<?php
$fisiere = ["img12.png", "img10.png", "IMG2.png", "img1.png"];
natsort($fisiere);
print_r($fisiere);
natcasesort($fisiere);
print_r($fisiere);
Rezultat
Array
(
[2] => IMG2.png
[3] => img1.png
[1] => img10.png
[0] => img12.png
)
Array
(
[3] => img1.png
[2] => IMG2.png
[1] => img10.png
[0] => img12.png
)
Greșeli frecvente
- Scrii
$sortat = natsort($lista);. Funcția returneazătrueși modifică tabloul primit.
Comenzi înrudite
sort: Sortează elementele unui tablou crescător. Există și variante pentru descrescător și pentru chei.array_multisort: Sortează mai multe tablouri deodată sau un tabel după mai multe coloane.array_keys / array_values: Returnează doar cheile (array_keys) sau doar valorile (array_values) unui tablou.