Maison  >  Article  >  développement back-end  >  Tri des tableaux multidimensionnels à l'aide de PHP

Tri des tableaux multidimensionnels à l'aide de PHP

WBOY
WBOYoriginal
2023-06-06 08:04:021626parcourir

En programmation PHP, nous avons souvent besoin de trier des tableaux multidimensionnels pour répondre à différents besoins, comme le tri par prix, le tri par ordre alphabétique, etc. Cependant, le tri des tableaux multidimensionnels est plus complexe que celui des tableaux unidimensionnels. Cet article explique comment utiliser PHP pour trier des tableaux multidimensionnels.

  1. La fonction de tri de PHP

Tout d'abord, nous devons comprendre les fonctions de tri en PHP : sort(), rsort(), asort () , arsort(), ksort(), krsort(), uksort(), usort(). Ces fonctions conviennent au tri de tableaux unidimensionnels. Si vous souhaitez trier un tableau multidimensionnel, nous devons utiliser une fonction de rappel pour trier le tableau.

  1. Définition de la fonction de rappel

La fonction de rappel fait référence à une fonction passée en paramètre dans d'autres fonctions. En PHP, les fonctions de rappel sont généralement utilisées pour trier, filtrer, parcourir, etc. Nous pouvons utiliser une fonction anonyme ou une fonction avec un nom personnalisé comme fonction de rappel.

Ce qui suit est un exemple d'utilisation d'une fonction anonyme comme fonction de rappel :

$array = array(
    array('price' => 45.50),
    array('price' => 15.00),
    array('price' => 20.15),
    array('price' => 25.00),
    array('price' => 90.10),
    array('price' => 9.99),
);

usort($array, function($a, $b) {
    if ($a['price'] == $b['price']) return 0;
    return ($a['price'] < $b['price']) ? -1 : 1;
});

print_r($array);

Le résultat de sortie est le suivant :

Array (
    [0] => Array ( [price] => 9.99 )
    [1] => Array ( [price] => 15 )
    [2] => Array ( [price] => 20.15 )
    [3] => Array ( [price] => 25 )
    [4] => Array ( [price] => 45.5 )
    [5] => Array ( [price] => 90.1 )
)
    #🎜 🎜#Utilisez la fonction de rappel pour trier les tableaux multidimensionnels
Si vous souhaitez trier des tableaux multidimensionnels, nous devons utiliser une fonction de rappel pour définir les règles de tri du tableau. Nous pouvons définir plusieurs conditions de tri dans la fonction de rappel et comparer les valeurs des éléments du tableau une par une en fonction de la priorité pour atteindre l'objectif de tri.

Ce qui suit est un exemple d'utilisation d'une fonction de rappel pour trier un tableau multidimensionnel :

$array = array(
    array('name' => 'John', 'age' => 25, 'score' => 80),
    array('name' => 'Mary', 'age' => 28, 'score' => 90),
    array('name' => 'Bob', 'age' => 20, 'score' => 95),
    array('name' => 'Jack', 'age' => 30, 'score' => 85),
    array('name' => 'Lisa', 'age' => 22, 'score' => 85),
);

// 按照年龄降序、分数升序、名字升序排序
usort($array, function($a, $b) {
    if ($a['age'] == $b['age']) {
        if ($a['score'] == $b['score']) {
            return strcmp($a['name'], $b['name']);
        } else {
            return ($a['score'] > $b['score']) ? 1 : -1;
        }
    } else {
        return ($a['age'] < $b['age']) ? 1 : -1;
    }
});

print_r($array);

Le résultat est le suivant :

Array (
    [0] => Array ( [name] => Mary [age] => 28 [score] => 90 )
    [1] => Array ( [name] => Jack [age] => 30 [score] => 85 )
    [2] => Array ( [name] => Lisa [age] => 22 [score] => 85 )
    [3] => Array ( [name] => John [age] => 25 [score] => 80 )
    [4] => Array ( [name] => Bob [age] => 20 [score] => 95 )
)

    Résumé# 🎜🎜#
  1. Cet article présente comment utiliser PHP pour implémenter le tri de tableaux multidimensionnels. Tout d'abord, nous comprenons la fonction de tri en PHP, puis trions les tableaux multidimensionnels. tableau via la fonction de rappel. Dans le développement actuel, le tri est une fonction très courante, et le tri de tableaux multidimensionnels peut nous permettre de mieux répondre à divers besoins.

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