Maison  >  Article  >  développement back-end  >  Comment trier des tableaux multidimensionnels en fonction de la valeur du tableau interne en PHP ?

Comment trier des tableaux multidimensionnels en fonction de la valeur du tableau interne en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 21:30:29387parcourir

How to Sort Multi-Dimensional Arrays Based on Inner Array Value in PHP?

Tri des tableaux multidimensionnels basés sur la valeur du tableau interne en PHP

Les tableaux en PHP fournissent une structure de données puissante pour organiser et stocker les données. Cependant, trier des tableaux multidimensionnels en fonction d'une valeur spécifique dans un tableau interne peut être une tâche difficile.

Description du problème

Considérons une table de hachage PHP avec la structure de données suivante :

[
    [
        "type" => "suite",
        "name" => "A-Name"
    ],
    [
        "type" => "suite",
        "name" => "C-Name"
    ],
    [
        "type" => "suite",
        "name" => "B-Name"
    ]
]

L'objectif est de trier cette structure de données en fonction de la clé "name" dans le tableau interne.

Méthodes de tri

Diverses fonctions PHP peuvent être utilisées pour trier les tableaux :

  • ksort : Trie les tableaux associatifs (tables de hachage) par clé.
  • sort : Trie les tableaux avec des valeurs.
  • usort : Trie les tableaux à l'aide d'une fonction de comparaison définie par l'utilisateur.

Cependant, aucune de ces fonctions ne prend directement en charge le tri basé sur une clé dans un tableau interne.

Fonction de tri personnalisée

Pour surmonter cette limitation, une fonction de tri personnalisée peut être définie pour comparer les valeurs souhaitées dans le tableau interne. Cela peut être accompli en utilisant la fonction usort.

<code class="php">function cmp($a, $b) {
    return $b['name'] - $a['name'];
}</code>

Cette fonction compare la clé "name" dans les tableaux internes et renvoie une valeur négative si le nom du premier tableau est supérieur au le nom du deuxième tableau.

Tri du tableau

Une fois la fonction de comparaison définie, elle peut être utilisée pour trier le tableau à l'aide de la fonction usort.

<code class="php">usort($mydata, "cmp");</code>

Une solution alternative

Une solution alternative à la fonction de tri personnalisée consiste à créer un nouveau tableau contenant uniquement les valeurs à trier. Cela peut être fait avec une boucle imbriquée et une instruction conditionnelle.

<code class="php">function array_sort($array, $on, $order=SORT_ASC) {
    // ...
    return $new_array;
}</code>

Cette fonction prend en compte le tableau à trier, la clé sur laquelle trier et un ordre facultatif (croissant ou décroissant). Il renvoie un nouveau tableau avec les données triées.

Utilisation

La fonction array_sort peut être utilisée comme suit :

<code class="php">$mydata = [
    ['type' => 'suite', 'name' => 'A-Name'],
    ['type' => 'suite', 'name' => 'C-Name'],
    ['type' => 'suite', 'name' => 'B-Name']
];

$sorted_data = array_sort($mydata, 'name', SORT_ASC);

print_r($sorted_data);</code>

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
Article précédent:Phrase circulaireArticle suivant:Phrase circulaire