Składnia:
Składnia funkcji usort() jest podana poniżej.
Boolean usort( tablica $tablica, callback())Ta funkcja ma dwa argumenty. Oba argumenty są obowiązkowe. Pierwszy argument przyjmuje tablicę, która zostanie posortowana. Funkcja callback() porównuje wartości tablicy, aby posortować tablicę i zwraca wartość liczbową. Jeśli argumenty funkcji callback() są równe, funkcja zwróci 0. Jeśli pierwszy argument funkcji callback() jest większy niż drugi argument, zwróci 1. Jeśli pierwszy argument funkcji callback() jest mniejszy niż drugi argument, zwraca -1. Funkcja usort() zwraca prawdę w przypadku pomyślnego sortowania i zwraca fałsz w przypadku niepomyślnego sortowania. Niektóre zastosowania tej funkcji zostały pokazane w dalszej części tego samouczka.
Przykład-1: Sortuj tablicę wartości dat
Poniższy przykład pokazuje, jak można prawidłowo posortować tablicę wartości dat za pomocą funkcji usort(). Utwórz plik PHP za pomocą następującego skryptu. $date_array jest definiowany wartościami pięciodniowymi. sort_data() funkcja jest zadeklarowana jako funkcja zwrotna do sortowania $date_array. Wartości tablicy są wypisywane przed wywołaniem funkcji usort(). Gdy funkcja usort() zostanie wywołana z tablicą i funkcją wywołania zwrotnego, przekonwertuje dwie wartości daty na wartości znacznika czasu za pomocą funkcji strtotime(). Jeśli dwie wartości datownika są równe, funkcja zwróci 0. Jeśli pierwsza wartość znacznika czasu jest większa niż druga wartość znacznika czasu, funkcja zwróci 1. Jeśli pierwsza wartość znacznika czasu jest mniejsza niż druga wartość znacznika czasu, funkcja zwróci -1. Funkcja usort() wywoła funkcję zwrotną wiele razy, aż $date_array jest prawidłowo posortowany. Następnie posortowana tablica zostanie wydrukowana za pomocą dla każdego pętla.
//Zdefiniuj funkcję zwrotnąfunkcja sort_date($a, $b)
return strtotime($a) - strtotime($b);
//Zadeklaruj tablicę wartości dat
$date_array = array('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
//Wydrukuj wartości tablicy przed sortowaniem
Echo "
Wartości tablicy dat:
";foreach($tablica_dat jako $wartość)
echo $wartość."
";
//Posortuj tablicę za pomocą usort()
usort($tablica_dat, "data_sortowania");
//Wydrukuj tablicę po sortowaniu
Echo "
Dane wyjściowe po sortowaniu tablicy dat:
";foreach($tablica_dat jako $wartość)
echo $wartość."
";
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera.
Przykład-2: Sortuj tablicę asocjacyjną
Poniższy przykład pokazuje, jak można posortować tablicę asocjacyjną za pomocą funkcji usort(). Utwórz plik PHP za pomocą następującego skryptu. sort_nazwy() funkcja jest zadeklarowana funkcją wywołania zwrotnego do sortowania tablicy na podstawie wartości tablicy. Operator trójskładnikowy jest używany w sort_nazwy() funkcja do porównywania wartości tablicy asocjacyjnej. Jeśli te dwie wartości są równe, funkcja zwrotna zwróci 0. Jeśli wartość pierwszego argumentu jest większa niż wartość drugiego argumentu, funkcja zwrotna zwróci 1. Jeśli wartość pierwszego argumentu jest mniejsza niż wartość drugiego argumentu, funkcja wywołania zwrotnego zwróci -1. usort() posortuje tablicę za pomocą funkcji zwrotnej, a posortowana tablica zostanie wydrukowana za pomocą dla każdego pętla.
//Zdefiniuj funkcję sortowania tablicy asocjacyjnejfunction sort_names($a, $b)
zwróć $a == $b ? 0 : $a > $b ? 1 : -1;
//Zdefiniuj tablicę asocjacyjną
$persons = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
//Sortuj tablicę
usort($osoby, "nazwy_sortowania");
//Wydrukuj posortowaną tablicę
Echo "Wartości posortowanej tablicy:
";
foreach($osoby jako $osoba)
echo $osoba. "
";
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera.
Przykład-3: Sortuj tablicę dwuwymiarową
Poniższy przykład pokazuje, jak dwuwymiarową tablicę można posortować za pomocą funkcji usort(). Utwórz plik PHP za pomocą następującego skryptu. sort_tablica() funkcja jest zadeklarowana funkcją zwrotną do sortowania tablicy na podstawie wartości tablicy array. Funkcja strcmp() jest używana w funkcji zwrotnej do porównywania wartości tablicy. Jeśli te dwie wartości są równe, funkcja strcmp() zwróci 0. Jeśli wartość pierwszego argumentu jest większa niż wartość drugiego argumentu, funkcja strcmp() zwróci 1. Jeśli wartość pierwszego argumentu jest mniejsza niż wartość drugiego argumentu, funkcja strcmp() zwróci -1. usort() posortuje tablicę za pomocą funkcji zwrotnej, a struktura posortowanej tablicy zostanie wydrukowana za pomocą print_r() funkcjonować.
//Zdefiniuj funkcję sortującą dwuwymiarową tablicęfunkcja sort_array($a, $b)
return strcmp($a['a'], $b['a']);
//Zadeklaruj tablicę dwuwymiarową
$zwierzęta = array(array ("a" => "Lew"), array ("a" => "Jeleń"), array ("a" => "Królik"),array ("a" => "Małpa "));
//Sortuj tablicę
usort($zwierzęta, "tablica_sortowania");
//Wydrukuj posortowaną tablicę
Echo "Wartości tablicy po usort():
";";
print_r($zwierzęta);
Echo "
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera.
Wniosek:
usort() jest użyteczną funkcją do sortowania określonych typów danych, które nie mogą poprawnie posortować normalnych funkcji sortujących PHP. Funkcja zwrotna funkcji usort() jest zdefiniowana na podstawie rodzajów wartości wymaganych do sortowania. Ten samouczek pomoże czytelnikom dowiedzieć się, jak korzystać z funkcji usort() i zastosować ją w swoim skrypcie w oparciu o wymagania.