Syntax:
Syntaxe funkce usort () je uvedena níže.
Boolean usort (pole $ pole, zpětné volání ())Tato funkce má dva argumenty. Oba argumenty jsou povinné. První argument přebírá pole, které bude tříděno. Funkce callback () porovnává hodnoty pole, aby seřadilo pole a vrátí číselnou hodnotu. Pokud jsou argumenty funkce callback () stejné, vrátí funkce 0. Pokud je první argument funkce callback () větší než druhý argument, vrátí 1. Pokud je první argument funkce callback () menší než druhý argument, vrátí hodnotu -1. funkce usort () vrací true pro úspěšné třídění a vrací false pro neúspěšné třídění. Některá použití této funkce byla ukázána v další části tohoto tutoriálu.
Příklad 1: Řazení pole hodnot data
Následující příklad ukazuje, jak lze správně řadit pole hodnot data pomocí funkce usort (). Vytvořte soubor PHP s následujícím skriptem. $ date_array je definována pětihodinovými hodnotami. sort_date () funkce je deklarována jako funkce zpětného volání pro třídění $ date_array. Hodnoty pole se vytisknou před voláním funkce usort (). Když je funkce usort () volána s polem a funkcí zpětného volání, převede dvě hodnoty data na hodnoty časového razítka pomocí funkce strtotime (). Pokud jsou dvě hodnoty časového razítka stejné, vrátí funkce hodnotu 0. Pokud je hodnota prvního časového razítka větší než hodnota druhého časového razítka, funkce vrátí 1. Pokud je hodnota prvního časového razítka nižší než hodnota druhého časového razítka, funkce vrátí -1. funkce usort () zavolá funkci zpětného volání několikrát, dokud $ date_array je správně tříděno. Dále bude vytištěno seřazené pole pomocí pro každého smyčka.
// Definujte funkci zpětného volánífunkce sort_date ($ a, $ b)
vrátit strtotime ($ a) - strtotime ($ b);
// Deklaruje pole hodnot data
$ date_array = array ('25-03-2020 ', '14-03-2020', '28 -02-2015 ', '09 -12-2017', '20-09-2015 ');
// Před seřazením vytiskněte hodnoty pole
ozvěna "
Hodnoty pole data:
";foreach ($ date_array jako $ hodnota)
echo $ value."
";
// Třídit pole pomocí usort ()
usort ($ date_array, "sort_date");
// Po seřazení vytisknout pole
ozvěna "
Výstup po seřazení pole data:
";foreach ($ date_array jako $ hodnota)
echo $ value."
";
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Příklad 2: Řazení asociativního pole
Následující příklad ukazuje, jak lze asociativní pole třídit pomocí funkce usort (). Vytvořte soubor PHP s následujícím skriptem. třídit_jména () funkce je deklarována jako funkce zpětného volání pro třídění pole na základě hodnot pole. Ternární operátor se používá v třídit_jména () funkce pro porovnání hodnot asociativního pole. Pokud jsou obě hodnoty stejné, vrátí funkce zpětného volání 0. Pokud je hodnota prvního argumentu větší než hodnota druhého argumentu, funkce zpětného volání vrátí 1. Pokud je hodnota prvního argumentu menší než hodnota druhého argumentu, funkce zpětného volání vrátí -1. usort () seřadí pole pomocí funkce zpětného volání a seřazené pole se vytiskne pomocí pro každého smyčka.
// Definujte funkci pro třídění asociativního polefunkce sort_names ($ a, $ b)
vrátit $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Definujte asociativní pole
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Třídit pole
usort ($ osob, "sort_names");
// Vytiskne seřazené pole
ozvěna "Hodnoty seřazeného pole:
";
foreach ($ osoby jako $ osoba)
echo $ osoba. "
";
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Příklad-3: Řazení dvourozměrného pole
Následující příklad ukazuje, jak lze třídit dvourozměrné pole pomocí funkce usort (). Vytvořte soubor PHP s následujícím skriptem. sort_array () funkce je deklarována jako funkce zpětného volání pro třídění pole na základě hodnot pole. Funkce strcmp () se používá ve funkci zpětného volání k porovnání hodnot pole. Pokud jsou dvě hodnoty stejné, vrátí funkce strcmp () 0. Pokud je hodnota prvního argumentu větší než hodnota druhého argumentu, vrátí funkce strcmp () 1. Pokud je hodnota prvního argumentu menší než hodnota druhého argumentu, vrátí funkce strcmp () -1. usort () seřadí pole pomocí funkce zpětného volání a struktura seřazeného pole se vytiskne pomocí print_r () funkce.
// Definujte funkci pro třídění dvourozměrného polefunkce sort_array ($ a, $ b)
vrátit strcmp ($ a ['a'], $ b ['a']);
// Deklarujte dvourozměrné pole
$ animals = pole (pole ("a" => "lev"), pole ("a" => "jelen"), pole ("a" => "králík"), pole ("a" => "opice) "));
// Třídit pole
usort ($ animals, "sort_array");
// Vytiskne seřazené pole
ozvěna "Hodnoty pole po usort ():
";";
print_r ($ zvířata);
ozvěna "
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Závěr:
usort () je užitečná funkce pro třídění konkrétních typů dat, která neumí správně řadit běžné funkce řazení PHP. Funkce zpětného volání funkce usort () je definována na základě druhů hodnot, které jsou k třídění požadovány. Tento kurz pomůže čtenářům vědět, jak používat funkci usort () a použít ji ve svém skriptu na základě požadavku.