php

Použitie funkcie usort () v PHP

Použitie funkcie usort () v PHP
V PHP existuje veľa zabudovaných funkcií na triedenie premenných poľa. funkcia usort () je jedným z nich. Táto funkcia triedi pole pomocou používateľom definovanej funkcie spätného volania. Ak pole obsahuje konkrétny typ údajov, ktoré nie je možné štandardným spôsobom triediť pomocou iných funkcií triedenia, je lepšie použiť príkaz usort (). Napríklad, ak pole obsahuje údajové hodnoty, potom nie je možné vhodne triediť odrodu pomocou iných funkcií triedenia PHP. Tento typ kolekcie je možné triediť definovaním správnej používateľom definovanej funkcie nazývanej v druhom argumente funkcie usort (), ako môže funkcia usort () triediť konkrétne hodnoty poľa zobrazené v tomto návode.

Syntax:

Syntax funkcie usort () je uvedená nižšie.

Boolean usort (pole $ pole, spätné volanie ())

Táto funkcia má dva argumenty. Oba argumenty sú povinné. Prvý argument berie pole, ktoré bude zoradené. Funkcia callback () porovnáva hodnoty poľa na zoradenie poľa a vráti číselnú hodnotu. Ak sú argumenty funkcie callback () rovnaké, potom funkcia vráti hodnotu 0. Ak je prvý argument funkcie callback () väčší ako druhý argument, vráti hodnotu 1. Ak je prvý argument funkcie callback () menší ako druhý argument, vráti hodnotu -1. funkcia usort () vráti true pre úspešné triedenie a vráti false pre neúspešné triedenie. Niektoré použitia tejto funkcie boli uvedené v nasledujúcej časti tohto tutoriálu.

Príklad 1: Zoradenie poľa hodnôt dátumu

Nasledujúci príklad ukazuje, ako je možné správne zoradiť pole hodnôt dátumu pomocou funkcie usort (). Vytvorte súbor PHP s nasledujúcim skriptom. $ date_array je definované piatimi dátumovými hodnotami. dátum_triedenia () funkcia je deklarovaná ako funkcia spätného volania na triedenie $ date_array. Hodnoty poľa sa vytlačia pred volaním funkcie usort (). Keď je funkcia usort () volaná s poľom a funkciou spätného volania, prevedie dve hodnoty dátumu na hodnoty časovej pečiatky pomocou funkcie strtotime (). Ak sú dve hodnoty časovej pečiatky rovnaké, funkcia vráti 0. Ak je hodnota prvej časovej pečiatky väčšia ako hodnota druhej časovej pečiatky, funkcia vráti 1. Ak je hodnota prvej časovej pečiatky nižšia ako hodnota druhej časovej pečiatky, funkcia vráti hodnotu -1. funkcia usort () zavolá funkciu spätného volania viackrát, kým $ date_array je správne zoradené. Ďalej sa vytriedené pole vytlačí pomocou pre každého slučka.

// Definujte funkciu spätného volania
funkcia sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);

// Deklaruje pole hodnôt dátumu
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Pred zoradením vytlačte hodnoty poľa
ozvena “

Hodnoty poľa dátumu:

";
foreach ($ date_array ako $ hodnota)

echo $ hodnota.„
";

// Zoradiť pole pomocou usort ()
usort ($ date_array, "sort_date");
// Vytlačí pole po zoradení
ozvena “

Výstup po zoradení poľa dátumu:

";
foreach ($ date_array ako $ hodnota)

echo $ hodnota.„
";

?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Príklad 2: Zoradenie asociatívneho poľa

Nasledujúci príklad ukazuje, ako je možné asociatívne pole triediť pomocou funkcie usort (). Vytvorte súbor PHP s nasledujúcim skriptom. zoradiť_názvy () funkcia je deklarovaná ako funkcia spätného volania na triedenie poľa na základe hodnôt poľa. Ternárny operátor sa používa v zoradiť_názvy () funkcia na porovnanie hodnôt asociatívneho poľa. Ak sú dve hodnoty rovnaké, funkcia spätného volania vráti 0. Ak je hodnota prvého argumentu väčšia ako hodnota druhého argumentu, funkcia spätného volania vráti hodnotu 1. Ak je hodnota prvého argumentu menšia ako hodnota druhého argumentu, funkcia spätného volania vráti hodnotu -1. usort () zoradí pole pomocou funkcie spätného volania a zoradené pole sa vytlačí pomocou pre každého slučka.

// Definujte funkciu na triedenie asociatívneho poľa
funkcia sort_names ($ a, $ b)
návrat $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Definujte asociatívne pole
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Zoradiť pole
usort ($ osôb, "sort_names");
// Vytlačí zoradené pole
ozvena “Hodnoty zoradeného poľa:
";
foreach ($ osôb ako $ osoba)
echo $ osoba. „
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Príklad 3: Zoradenie dvojrozmerného poľa

Nasledujúci príklad ukazuje, ako je možné dvojrozmerné pole triediť pomocou funkcie usort (). Vytvorte súbor PHP s nasledujúcim skriptom. sort_array () funkcia je deklarovaná ako funkcia spätného volania na triedenie poľa na základe hodnôt poľa. funkcia strcmp () sa používa vo funkcii spätného volania na porovnanie hodnôt poľa. Ak sú dve hodnoty rovnaké, potom funkcia strcmp () vráti 0. Ak je hodnota prvého argumentu väčšia ako hodnota druhého argumentu, funkcia strcmp () vráti hodnotu 1. Ak je hodnota prvého argumentu menšia ako hodnota druhého argumentu, funkcia strcmp () vráti -1. usort () zoradí pole pomocou funkcie spätného volania a štruktúra zoradeného poľa sa vytlačí pomocou print_r () funkcia.

// Definujte funkciu na triedenie dvojrozmerného poľa
funkcia sort_array ($ a, $ b)

return strcmp ($ a ['a'], $ b ['a']);

// Deklarujte dvojrozmerné pole
$ animals = array (pole ("a" => "Lev"), pole ("a" => "jeleň"), pole ("a" => "králik"), pole ("a" => "opica "));
// Zoradiť pole
usort ($ animals, "sort_array");
// Vytlačí zoradené pole
ozvena “Hodnoty poľa po usort ():
";
print_r ($ zvieratá);
ozvena “
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Záver:

usort () je užitočná funkcia na triedenie konkrétnych typov údajov, ktoré nedokážu správne triediť bežné PHP funkcie triedenia. Funkcia spätného volania funkcie usort () je definovaná na základe druhov hodnôt, ktoré sú potrebné na triedenie. Tento tutoriál pomôže čitateľom vedieť, ako používať funkciu usort () a aplikovať ju vo svojom skripte na základe požiadavky.

Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...