Sintassi:
La sintassi della funzione usort() è riportata di seguito.
usort booleano (array $array, callback())Questa funzione ha due argomenti. Entrambi gli argomenti sono obbligatori. Il primo argomento prende l'array che verrà ordinato. La funzione callback() confronta i valori dell'array per ordinare l'array e restituisce un valore numerico. Se gli argomenti della funzione callback() sono uguali, la funzione restituirà 0. Se il primo argomento della funzione callback() è maggiore del secondo argomento, restituirà 1. Se il primo argomento della funzione callback() è più piccolo del secondo argomento, restituisce -1. La funzione usort() restituisce true per l'ordinamento riuscito e restituisce false per l'ordinamento non riuscito. Alcuni usi di questa funzione sono mostrati nella parte successiva di questo tutorial.
Esempio 1: ordinare un array di valori di data
L'esempio seguente mostra come un array di valori di data può essere ordinato correttamente usando la funzione usort(). Crea un file PHP con il seguente script. $ data_array è definito con valori a cinque date. sort_date() la funzione è dichiarata come funzione di callback per ordinare il $ data_array. I valori dell'array vengono stampati prima di chiamare la funzione usort(). Quando la funzione usort() viene chiamata con l'array e la funzione di callback, convertirà due valori di data in valori di timestamp utilizzando la funzione strtotime(). Se i due valori di timestamp sono uguali, la funzione restituirà 0. Se il primo valore di timestamp è maggiore del secondo valore di timestamp, la funzione restituirà 1. Se il primo valore di timestamp è inferiore al secondo valore di timestamp, la funzione restituirà -1. La funzione usort() chiamerà la funzione di callback più volte fino a quando il $ data_array è ordinato correttamente. Successivamente, l'array ordinato verrà stampato utilizzando il per ciascuno ciclo continuo.
//Definisci la funzione di callbackfunzione sort_date($a, $b)
return strtotime($a) - strtotime($b);
//Dichiara l'array di valori di data
$ array_date = array('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
//Stampa i valori dell'array prima di ordinare
eco "
I valori dell'array di date:
";foreach($array_data come $valore)
echo $valore."
";
//Ordina l'array usando usort()
usort($array_data, "data_ordina");
//Stampa l'array dopo l'ordinamento
eco "
L'output dopo l'ordinamento dell'array di date:
";foreach($array_data come $valore)
echo $valore."
";
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Esempio 2: ordinare un array associativo
L'esempio seguente mostra come ordinare un array associativo utilizzando la funzione usort(). Crea un file PHP con il seguente script. sort_names() la funzione è dichiarata una funzione di callback per ordinare l'array in base ai valori dell'array. L'operatore ternario è usato nel sort_names() funzione per confrontare i valori dell'array associativo. Se i due valori sono uguali, la funzione di callback restituirà 0. Se il valore del primo argomento è maggiore del valore del secondo argomento, la funzione di callback restituirà 1. Se il valore del primo argomento è inferiore al valore del secondo argomento, la funzione di callback restituirà -1. usort() ordinerà l'array usando la funzione di callback e l'array ordinato verrà stampato usando il per ciascuno ciclo continuo.
//Definisci la funzione per ordinare l'array associativofunzione sort_names($a, $b)
restituisce $a == $b ? 0 : $a > $b ? 1 : -1;
//Definisci l'array associativo
$persone = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
//Ordina l'array
usort($persone, "sort_names");
//Stampa l'array ordinato
eco "I valori dell'array ordinato:
";
foreach($persone come $persona)
echo $persona. "
";
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Esempio 3: ordinare un array bidimensionale
L'esempio seguente mostra come ordinare un array bidimensionale utilizzando la funzione usort(). Crea un file PHP con il seguente script. sort_array() la funzione è dichiarata una funzione di callback per ordinare l'array in base ai valori dell'array. La funzione strcmp() viene utilizzata nella funzione di callback per confrontare i valori dell'array. Se i due valori sono uguali, la funzione strcmp() restituirà 0. Se il valore del primo argomento è maggiore del valore del secondo argomento, la funzione strcmp() restituirà 1. Se il valore del primo argomento è inferiore al valore del secondo argomento, la funzione strcmp() restituirà -1. usort() ordinerà l'array usando la funzione di callback e la struttura dell'array ordinato verrà stampata usando il tasto print_r() funzione.
//Definisci la funzione per ordinare l'array bidimensionalefunzione sort_array($a, $b)
return strcmp($a['a'], $b['a']);
//Dichiara l'array bidimensionale
$animali = array(array ("a" => "Leone"), array ("a" => "Cervo"), array ("a" => "Coniglio"), array ("a" => "Scimmia "));
//Ordina l'array
usort($animali, "sort_array");
//Stampa l'array ordinato
eco "I valori dell'array dopo usort():
";";
print_r($animali);
eco "
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Conclusione:
usort() è una funzione utile per ordinare particolari tipi di dati che non possono ordinare correttamente le normali funzioni di ordinamento di PHP. La funzione di callback della funzione usort() è definita in base ai tipi di valori richiesti per ordinare. Questo tutorial aiuterà i lettori a sapere come usare la funzione usort() e ad applicarla nel loro script in base al requisito.