Ce face strcoll
strcmp compară octeții, deci pune literele cu diacritice după „z”. strcoll folosește regulile de sortare ale locale-ului LC_COLLATE, așa că, în română, „ă” vine după „a” și înainte de „b”.
Rezultatul depinde de setarea instalată pe server și de sistemul de operare. Pentru o sortare românească sigură, pe orice server, folosește clasa Collator din extensia intl.
Parametri
| Parametru | Descriere |
|---|---|
$string1 |
Primul text. |
$string2 |
Al doilea text. |
Ce returnează
Un număr negativ, 0 sau un număr pozitiv.
Exemple
Exemplul 1: Sortare cu strcmp și cu strcoll
<?php
$orase = ["Zalău", "Ștei", "Arad", "Sibiu", "Țăndărei", "Bacău"];
usort($orase, "strcmp");
echo implode(", ", $orase) . "\n";
setlocale(LC_COLLATE, "ro_RO.UTF-8");
usort($orase, "strcoll");
echo implode(", ", $orase);
Rezultat
Arad, Bacău, Sibiu, Zalău, Ștei, Țăndărei
Arad, Bacău, Sibiu, Ștei, Țăndărei, Zalău
Greșeli frecvente
- Folosești
strcollfărăsetlocale(LC_COLLATE, ...)și obții aceeași ordine ca lastrcmp.
Comenzi înrudite
strcmp / strcasecmp / strncmp: Compară două texte și spune dacă primul este mai mic, egal sau mai mare decât al doilea.setlocale: Setează limba și regiunea (locale) folosite de funcțiile care depind de țară: sortare, clasificarea literelor, formate.sort: Sortează elementele unui tablou crescător. Există și variante pentru descrescător și pentru chei.