php

Utilizarea funcției usort () în PHP

Utilizarea funcției usort () în PHP
Există multe funcții încorporate în PHP pentru a sorta variabilele matrice. funcția usort () este una dintre ele. Această funcție sortează matricea utilizând o funcție de apelare definită de utilizator. Când matricea conține un anumit tip de date care nu pot fi sortate într-un mod standard utilizând alte funcții de sortare, atunci este mai bine să utilizați usort (). De exemplu, dacă matricea conține valori de date, atunci varietatea nu poate fi sortată corespunzător folosind alte funcții de sortare ale PHP. Acest tip de colecție poate fi sortat prin definirea funcției adecvate definite de utilizator numită în al doilea argument al funcției usort () modul în care funcția usort () poate sorta valorile matrice specifice prezentate în acest tutorial.

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 invers
funcț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 asociative
funcț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ță.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...