Sintaxă:
Sintaxa funcției usort () este dată mai jos.
Usort boolean (array $ array, callback ())Această funcție are două argumente. Ambele argumente sunt obligatorii. Primul argument ia matricea care va fi sortată. Funcția callback () compară valorile matricei pentru a sorta matricea și returnează o valoare numerică. Dacă argumentele funcției callback () sunt egale, atunci funcția va returna 0. Dacă primul argument al funcției callback () este mai mare decât al doilea argument, acesta va reveni 1. Dacă primul argument al funcției callback () este mai mic decât al doilea argument, acesta returnează -1. funcția usort () returnează true pentru sortarea reușită și returnează false pentru sortarea nereușită. Unele utilizări ale acestei funcții au fost prezentate în următoarea parte a acestui tutorial.
Exemplu-1: Sortați o serie de valori de dată
Următorul exemplu arată cum o serie de valori de dată pot fi sortate corect folosind funcția usort (). Creați un fișier PHP cu următorul script. $ date_array este definit cu valori de cinci date. sort_date () funcția este declarată ca funcție de apel invers pentru a sorta fișierul $ date_array. Valorile matricei sunt tipărite înainte de a apela funcția usort (). Când funcția usort () este apelată cu matricea și funcția callback, va converti două valori de dată în valori de timestamp folosind funcția strtotime (). Dacă cele două valori ale marcajului de timp sunt egale, atunci funcția va reveni la 0. Dacă prima valoare a mărcii de timp este mai mare decât a doua valoare a mărcii de timp, atunci funcția va reveni 1. Dacă prima valoare a marcajului de timp este mai mică decât a doua valoare a marcajului de timp, funcția va reveni la -1. funcția usort () va apela funcția de apel invers de mai multe ori până la $ date_array este sortat corect. Apoi, matricea sortată va fi tipărită folosind pentru fiecare buclă.
// Definiți funcția de apel inversfuncție sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);
// Declarați matricea valorilor datei
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Imprimați valorile matricei înainte de sortare
ecou "
Valorile matricei de date:
";foreach ($ date_array ca valoare $)
echo $ valoare."
";
// Sortează matricea folosind usort ()
usort ($ date_array, "sort_date");
// Imprimați tabloul după sortare
ecou "
Ieșirea după sortarea matricei de date:
";foreach ($ date_array ca valoare $)
echo $ valoare."
";
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Exemplu-2: Sortează o matrice asociativă
Următorul exemplu arată cum poate fi sortată o matrice asociativă utilizând funcția usort (). Creați un fișier PHP cu următorul script. sort_names () funcția este declarată o funcție de apel invers pentru a sorta matricea pe baza valorilor matricei. Operatorul ternar este utilizat în sort_names () funcție pentru a compara valorile matricei asociative. Dacă cele două valori sunt egale, atunci funcția de apel invers va returna 0. Dacă prima valoare a argumentului este mai mare decât cea de-a doua valoare a argumentului, atunci funcția de apel invers va returna 1. Dacă prima valoare a argumentului este mai mică decât cea de-a doua valoare a argumentului, atunci funcția de apel invers va returna -1. usort () va sorta matricea folosind funcția callback, iar matricea sortată va fi tipărită folosind pentru fiecare buclă.
// Definiți funcția de sortare a matricei asociativefuncție sort_names ($ a, $ b)
returnează $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Definiți matricea asociativă
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sortează matricea
usort ($ persons, "sort_names");
// Imprimați matricea sortată
ecou "Valorile matricei sortate:
";
foreach ($ persoane ca $ persoană)
echo $ persoana. "
";
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Exemplu-3: Sortează o matrice bidimensională
Următorul exemplu arată cum poate fi sortată o matrice bidimensională utilizând funcția usort (). Creați un fișier PHP cu următorul script. sort_array () funcția este declarată o funcție de apel invers pentru a sorta matricea pe baza valorilor matricei. Funcția strcmp () este utilizată în funcția de apel invers pentru a compara valorile matricei. Dacă cele două valori sunt egale, atunci funcția strcmp () va întoarce 0. Dacă prima valoare a argumentului este mai mare decât a doua valoare a argumentului, atunci funcția strcmp () va returna 1. Dacă prima valoare a argumentului este mai mică decât a doua valoare a argumentului, atunci funcția strcmp () va returna -1. usort () va sorta matricea utilizând funcția de apel invers, iar structura matricei sortate va fi tipărită folosind print_r () funcţie.
// Definiți funcția pentru a sorta matricea bidimensionalăfuncție sort_array ($ a, $ b)
return strcmp ($ a ['a'], $ b ['a']);
// Declarați matricea bidimensională
$ animals = array (array ("a" => "Lion"), array ("a" => "Cerb"), array ("a" => "Rabbit"), array ("a" => "Maimuță "));
// Sortează matricea
usort ($ animals, "sort_array");
// Imprimați matricea sortată
ecou "Valorile matricei după usort ():
";";
print_r ($ animale);
ecou "
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Concluzie:
usort () este o funcție utilă pentru sortarea anumitor tipuri de date care nu pot sorta corect funcțiile normale de sortare PHP. Funcția de apel invers a funcției usort () este definită pe baza tipurilor de valori care sunt necesare pentru sortare. Acest tutorial îi va ajuta pe cititori să știe cum să utilizeze funcția usort () și să o aplice în scriptul lor în funcție de cerință.