Uso della funzione Usort in PHP

Uso della funzione Usort in PHP
In PHP esistono molte funzioni integrate per ordinare le variabili dell'array. La funzione usort () è una di queste. Questa funzione ordina l'array utilizzando una funzione di callback definita dall'utente. Quando l'array contiene un particolare tipo di dati che non può essere ordinata in modo standard utilizzando altre funzioni di ordinamento, allora usort () è meglio utilizzare. Ad esempio, se l'array contiene valori di dati, la varietà non può essere adeguatamente ordinata utilizzando altre funzioni di ordinamento di PHP. Questo tipo di raccolta può essere ordinato definendo la funzione corretta definita dall'utente chiamata nel secondo argomento della funzione usort () come usort () la funzione può ordinare i valori di array specifici mostrati in questo tutorial.

Sintassi:

La sintassi della funzione usort () è riportata di seguito.

Boolean usort (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 () è inferiore al secondo argomento, restituisce -1. La funzione usort () restituisce vero per l'ordinamento di successo e restituisce false per un ordinamento senza successo. Alcuni usi di questa funzione hanno mostrato nella parte successiva di questo tutorial.

Esempio-1: ordina una matrice di valori della data

L'esempio seguente mostra come una matrice di valori della data può essere ordinata correttamente usando la funzione Usort (). Crea un file PHP con il seguente script. $ date_array è definito con valori di cinque date. sort_date () La funzione è dichiarata come funzione di callback per ordinare il $ date_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 della data in valori di timestamp usando la funzione strtotime (). Se i due valori di timestamp sono uguali, la funzione restituirà 0. Se il primo valore del timestamp è maggiore del secondo valore timestamp, la funzione restituirà 1. Se il primo valore del timestamp è inferiore al secondo valore di timestamp, la funzione restituirà -1. La funzione usort () chiamerà la funzione di callback più volte fino a $ date_array è ordinato correttamente. Successivamente, l'array ordinato verrà stampato utilizzando il per ciascuno ciclo continuo.

// Definisci la funzione di callback
funzione sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);

// Dichiara la matrice dei valori della data
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Stampa i valori dell'array prima dell'ordinamento
eco "

I valori dell'array di date:

";
foreach ($ date_array come $ value)

Echo $ Value."
";

// Ordina l'array usando usort ()
usort ($ date_array, "sort_date");
// stampano l'array dopo la specie
eco "

L'output dopo l'ordinamento dell'array di data:

";
foreach ($ date_array come $ value)

Echo $ Value."
";

?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Esempio-2: ordina un array associativo

L'esempio seguente mostra come un array associativo può essere ordinato usando la funzione Usort (). Crea un file PHP con il seguente script. sort_names () La funzione viene dichiarata una funzione di callback per ordinare l'array in base ai valori dell'array. L'operatore ternario viene utilizzato sort_names () funzione per confrontare i valori dell'array associativo. Se i due valori sono uguali, la funzione di callback restituirà 0. Se il primo valore dell'argomento è maggiore del secondo valore dell'argomento, la funzione di callback restituirà 1. Se il primo valore dell'argomento è inferiore al secondo valore dell'argomento, la funzione di callback restituirà -1. Usort () ordinerà l'array utilizzando la funzione di callback e l'array ordinato verrà stampato utilizzando il per ciascuno ciclo continuo.

// Definisci la funzione per ordinare l'array associativo
funzione sort_names ($ a, $ b)
restituzione $ 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:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Esempio-3: ordinare un array bidimensionale

L'esempio seguente mostra come un array bidimensionale può essere ordinato usando la funzione usort (). Crea un file PHP con il seguente script. sort_array () La funzione viene 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 primo valore dell'argomento è maggiore del secondo valore dell'argomento, la funzione strcmp () restituirà 1. Se il primo valore dell'argomento è inferiore al secondo valore dell'argomento, la funzione strcmp () restituirà -1. Usort () risolverà l'array utilizzando la funzione di callback e la struttura dell'array ordinato verrà stampata utilizzando il print_r () funzione.

// Definisci la funzione per ordinare l'array bidimensionale
funzione 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" => " "));
// Ordina l'array
usort ($ animali, "sort_array");
// Stampa l'array ordinato
eco "I valori dell'array dopo Usort ():
";
print_r ($ animali);
eco "
";
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello 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 necessari per ordinare. Questo tutorial aiuterà i lettori a sapere come utilizzare la funzione Usort () e applicarla nel loro script in base al requisito.