Comment puis-je trier un tableau PHP multidimensionnel par plusieurs champs ?

DDD
Libérer: 2024-11-22 05:53:14
original
914 Les gens l'ont consulté

How Can I Sort a Multidimensional PHP Array by Multiple Fields?

Tri des tableaux multidimensionnels par plusieurs valeurs de champ

En PHP, le tri des tableaux multidimensionnels par plusieurs valeurs de champ peut être effectué à l'aide de array_multisort().

Considérons le tableau suivant :

$data = [
    [
        "destination" => "Sydney",
        "airlines" => "airline_1",
        "one_way_fare" => 100,
        "return_fare" => 300
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_2",
        "one_way_fare" => 150,
        "return_fare" => 350
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_3",
        "one_way_fare" => 180,
        "return_fare" => 380
    ]
];
Copier après la connexion

Pour trier ce tableau par return_fare par ordre croissant et one_way_fare par ordre croissant, utilisez array_multisort() :

// Extract specific fields into individual arrays
$return_fare = array_column($data, 'return_fare');
$one_way_fare = array_column($data, 'one_way_fare');

// Sort arrays using multiple criteria
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);

// Print sorted array
print_r($data);
Copier après la connexion

Méthodes alternatives :

  • Fonction array_orderby() : Pour une solution concise, pensez à utiliser la fonction array_orderby(), qui fournit un wrapper autour array_multisort().
  • **array_column() avec array_multisort()** : Pour éviter d'itérer sur le tableau, utilisez array_column()` pour extraire les valeurs de champ spécifiques avant le tri.
array_multisort(array_column($data, 'return_fare'), SORT_ASC,
                array_column($data, 'one_way_fare'), SORT_ASC,
                $data);
Copier après la connexion

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