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
313 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!

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