Maison >développement back-end >tutoriel php >Comment trier un tableau PHP en fonction d'une commande personnalisée ?

Comment trier un tableau PHP en fonction d'une commande personnalisée ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-24 08:11:15991parcourir

How to Sort a PHP Array Based on a Custom Order?

Tri des tableaux de commande personnalisés en PHP

Le tri des tableaux en PHP est généralement effectué via des algorithmes basés sur la comparaison. Cependant, il existe des situations dans lesquelles vous devez trier les tableaux en fonction d'un ordre personnalisé prédéfini.

Considérez un tableau de tableaux où chaque sous-tableau contient deux clés : "id" et "title". Vous souhaitez trier le tableau principal dans un ordre spécifique, tel que :

[3452342, 5867867, 7867867, 1231233]

Pour y parvenir, vous pouvez utiliser la fonction usort(). Cette fonction vous permet de spécifier une fonction de comparaison qui définit comment les éléments du tableau sont comparés.

Dans ce cas, la fonction de comparaison utilise une fermeture pour comparer les positions des valeurs "id" dans le tableau d'ordre personnalisé ( $order):

usort($array, function ($a, $b) use ($order) {
    $pos_a = array_search($a['id'], $order);
    $pos_b = array_search($b['id'], $order);
    return $pos_a - $pos_b;
});

La fonction de comparaison attribue les positions des valeurs "id" dans le tableau $order à $pos_a et $pos_b. Il soustrait ensuite ces positions pour déterminer l'ordre ($a vient avant $b si $pos_a est inférieur à $pos_b).

En utilisant le tableau d'ordre personnalisé et la fonction de comparaison, vous pouvez trier efficacement votre tableau de tableaux dans l'ordre prédéfini.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn