php

Użycie funkcji usort() w PHP

Użycie funkcji usort() w PHP
W PHP istnieje wiele wbudowanych funkcji do sortowania zmiennych tablicowych. Jednym z nich jest funkcja usort(). Ta funkcja sortuje tablicę za pomocą funkcji zwrotnej zdefiniowanej przez użytkownika. Gdy tablica zawiera określony typ danych, których nie można posortować w standardowy sposób przy użyciu innych funkcji sortowania, lepiej jest użyć usort(). Na przykład, jeśli tablica zawiera wartości danych, to odmiana nie może być odpowiednio posortowana przy użyciu innych funkcji sortujących PHP. Ten typ kolekcji może byćsortowany poprzez zdefiniowanie odpowiedniej funkcji zdefiniowanej przez użytkownika wywoływanej w drugim argumencie funkcji usort() jak funkcja usort() może sortowaćokreślone wartości tablicy pokazane w tym samouczku.

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 asocjacyjnej
function 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.

Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...