Maison > développement back-end > tutoriel php > Comment trier un tableau PHP multidimensionnel par valeur de sous-tableau ?

Comment trier un tableau PHP multidimensionnel par valeur de sous-tableau ?

DDD
Libérer: 2024-12-06 00:54:10
original
237 Les gens l'ont consulté

How to Sort a Multidimensional PHP Array by Sub-array Value?

Tri d'un tableau multidimensionnel par valeur de sous-tableau en PHP

En PHP, les tableaux peuvent être multidimensionnels, ce qui signifie qu'ils peuvent contenir des tableaux dans des tableaux . Un cas d'utilisation courant consiste à trier de tels tableaux en fonction d'une clé spécifique dans les sous-tableaux imbriqués.

Tri par clé de chaîne

Considérez le tableau suivant :

$array = [
    [
        'configuration_id' => 10,
        'id' => 1,
        'optionNumber' => '3',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 9,
        'id' => 1,
        'optionNumber' => '2',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 8,
        'id' => 1,
        'optionNumber' => '1',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ]
];
Copier après la connexion

Pour trier ce tableau par ordre croissant en fonction de la clé 'optionNumber', nous pouvons utiliser usort avec un anonyme function :

usort($array, function ($a, $b) {
    return strcmp($a['optionNumber'], $b['optionNumber']);
});
Copier après la connexion

Cette fonction compare les valeurs 'optionNumber' de chaque sous-tableau et renvoie 1 si la première valeur est supérieure, -1 si elle est plus petite ou 0 si elles sont égales. Cette comparaison est sensible à la casse.

Tri par une clé entière

Si la clé 'optionNumber' contient des entiers, on peut utiliser la fonction suivante :

usort($array, function ($a, $b) {
    return $a['optionNumber'] - $b['optionNumber'];
});
Copier après la connexion

Cette comparaison triera le tableau par ordre numérique croissant order.

Considérations

  • Pour les versions PHP 5.3 et supérieures, utilisez l'opérateur de vaisseau spatial (<=>) au lieu de la soustraction pour éviter les débordements/troncations. problèmes.
  • Notez que ces solutions supposent que la clé 'optionNumber' existe dans tous les sous-tableaux et est du type attendu.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal