Syntaxe:
La syntaxe de la fonction usort() est donnée ci-dessous.
Boolean usort( array $array, callback())Cette fonction a deux arguments. Les deux arguments sont obligatoires. Le premier argument prend le tableau qui sera trié. La fonction callback() compare les valeurs du tableau pour trier le tableau et renvoie une valeur numérique. Si les arguments de la fonction callback() sont égaux, alors la fonction retournera 0. Si le premier argument de la fonction callback() est supérieur au deuxième argument, il renverra 1. Si le premier argument de la fonction callback() est plus petit que le deuxième argument, il renvoie -1. La fonction usort() renvoie true pour un tri réussi et renvoie false pour un tri infructueux. Certaines utilisations de cette fonction ont été montrées dans la partie suivante de ce tutoriel.
Exemple-1 : Trier un tableau de valeurs de date
L'exemple suivant montre comment un tableau de valeurs de date peut être trié correctement à l'aide de la fonction usort(). Créez un fichier PHP avec le script suivant. $ date_array est défini avec des valeurs à cinq dates. date_tri() la fonction est déclarée comme fonction de rappel pour trier les $ date_array. Les valeurs du tableau sont imprimées avant d'appeler la fonction usort(). Lorsque la fonction usort () est appelée avec le tableau et la fonction de rappel, elle convertira deux valeurs de date en valeurs d'horodatage à l'aide de la fonction strtotime (). Si les deux valeurs d'horodatage sont égales, la fonction renverra 0. Si la première valeur d'horodatage est supérieure à la deuxième valeur d'horodatage, la fonction renverra 1. Si la première valeur d'horodatage est inférieure à la deuxième valeur d'horodatage, la fonction renverra -1. La fonction usort() appellera la fonction de rappel plusieurs fois jusqu'à ce que le $ date_array est bien trié. Ensuite, le tableau trié sera imprimé en utilisant le pour chacun boucle.
//Définition de la fonction de rappelfonction date_sorte($a, $b)
retour strtotime($a) - strtotime($b);
//Déclare le tableau de valeurs de date
$ date_array = array('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
//Imprime les valeurs du tableau avant le tri
écho "
Les valeurs du tableau de dates :
";foreach($date_array as $value)
echo valeur $."
";
//Trier le tableau en utilisant usort()
usort($ date_array, "sort_date");
//Imprime le tableau après le tri
écho "
La sortie après le tri du tableau de dates :
";foreach($date_array as $value)
echo valeur $."
";
?>
Production:
La sortie suivante apparaîtra après l'exécution du script à partir du serveur.
Exemple-2 : Trier un tableau associatif
L'exemple suivant montre comment un tableau associatif peut être trié à l'aide de la fonction usort(). Créez un fichier PHP avec le script suivant. noms_tri() la fonction est déclarée une fonction de rappel pour trier le tableau en fonction des valeurs du tableau. L'opérateur ternaire est utilisé dans le noms_tri() fonction pour comparer les valeurs du tableau associatif. Si les deux valeurs sont égales, la fonction de rappel renverra 0. Si la valeur du premier argument est supérieure à la valeur du deuxième argument, la fonction de rappel renverra 1. Si la valeur du premier argument est inférieure à la valeur du deuxième argument, la fonction de rappel renverra -1. usort() triera le tableau en utilisant la fonction de rappel, et le tableau trié sera imprimé en utilisant le pour chacun boucle.
//Définir la fonction pour trier le tableau associatiffonction sort_names($a, $b)
renvoie $a == $b ? 0 : $a > $b ? 1 : -1 ;
//Définition du tableau associatif
$persons = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
//Trier le tableau
usort($personnes, "sort_names");
//Imprime le tableau trié
écho "Les valeurs du tableau trié :
";
foreach($personnes as $person)
echo $personne. "
";
?>
Production:
La sortie suivante apparaîtra après l'exécution du script à partir du serveur.
Exemple-3 : Trier un tableau à deux dimensions
L'exemple suivant montre comment un tableau à deux dimensions peut être trié à l'aide de la fonction usort(). Créez un fichier PHP avec le script suivant. tableau_tri() la fonction est déclarée une fonction de rappel pour trier le tableau en fonction des valeurs du tableau. La fonction strcmp() est utilisée dans la fonction de rappel pour comparer les valeurs du tableau. Si les deux valeurs sont égales, la fonction strcmp() renverra 0. Si la valeur du premier argument est supérieure à la valeur du deuxième argument, la fonction strcmp() renverra 1. Si la valeur du premier argument est inférieure à la valeur du deuxième argument, la fonction strcmp() renverra -1. usort() va trier le tableau en utilisant la fonction de rappel, et la structure du tableau trié sera imprimée en utilisant le print_r() une fonction.
//Définir la fonction pour trier le tableau à deux dimensionsfonction sort_array($a, $b)
return strcmp($a['a'], $b['a']);
//Déclarer le tableau à deux dimensions
$animaux = array(array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Lapin"),array ("a" => "Singe") "));
//Trier le tableau
usort($animaux, "sort_array");
//Imprime le tableau trié
écho "Les valeurs du tableau après usort() :
";";
print_r($animaux);
écho "
?>
Production:
La sortie suivante apparaîtra après l'exécution du script à partir du serveur.
Conclusion:
usort () est une fonction utile pour trier des types de données particuliers qui ne peuvent pas trier correctement les fonctions de tri normales de PHP. La fonction de rappel de la fonction usort() est définie en fonction des types de valeurs nécessaires pour trier. Ce tutoriel aidera les lecteurs à savoir comment utiliser la fonction usort() et l'appliquer dans leur script en fonction de l'exigence.