Maison >développement back-end >tutoriel php >Comment trier des tableaux multidimensionnels par champs de tableau internes en PHP ?

Comment trier des tableaux multidimensionnels par champs de tableau internes en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 22:58:15503parcourir

How to Sort Multidimensional Arrays by Inner Array Fields in PHP?

Tri des tableaux multidimensionnels par champs de tableau internes en PHP

Le tri des tableaux multidimensionnels par champs dans les tableaux internes peut être une tâche courante lorsque vous travaillez avec données structurées en PHP. Cela peut être utile pour organiser et récupérer efficacement les données.

Pour trier un tableau multidimensionnel selon l'un des champs du tableau interne, vous pouvez utiliser la fonction array_multisort() en conjonction avec array_column(). La fonction array_column() extrait une colonne de valeurs des tableaux internes, créant un tableau unidimensionnel qui peut ensuite être trié.

La syntaxe pour trier un tableau multidimensionnel par le champ "prix" des tableaux internes est la suivante :

array_multisort(array_column($yourArray, "price"), SORT_ASC, $yourArray);

Dans cet exemple, $yourArray représente le tableau multidimensionnel que vous souhaitez trier. La constante SORT_ASC spécifie l'ordre croissant pour le tri.

Voici une répartition détaillée du code :

  • array_column($yourArray, "price") : Cette ligne extrait le "prix" valeurs des tableaux internes, créant un tableau unidimensionnel de prix.
  • SORT_ASC : cette constante définit ordre croissant pour le tri. Vous pouvez utiliser SORT_DESC pour l'ordre décroissant.
  • $yourArray : Cette variable est passée comme dernier paramètre pour appliquer le tri au tableau multidimensionnel d'origine.

Après avoir exécuté ce code, le $yourArray sera trié par le champ "prix" par ordre croissant. Les clés du tableau externe ne seront pas conservées.

Remarque : En PHP 7 et versions ultérieures, l'utilisation de cette syntaxe peut provoquer des erreurs liées au passage des variables par référence. Pour éviter cela, vous pouvez utiliser une approche sur deux lignes :

$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);

Cependant, dans PHP 8, la syntaxe sur une ligne fonctionne à nouveau comme prévu.

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