Maison >développement back-end >Problème PHP >Comment trier un tableau à deux dimensions en php

Comment trier un tableau à deux dimensions en php

PHPz
PHPzoriginal
2023-04-17 16:37:235157parcourir

En développement, nous avons souvent besoin de trier les données pour une meilleure présentation et utilisation. Pour les tableaux bidimensionnels, le tri peut être effectué en fonction d'un certain champ de données. Cet article explique comment utiliser PHP pour trier un tableau à deux dimensions.

1. Utilisez la fonction sort() pour trier un tableau à deux dimensions

sort() est une fonction intégrée de PHP qui peut trier les valeurs du tableau par ordre croissant. Lors du tri d'un tableau à deux dimensions, la fonction sort() trie par défaut selon le premier champ du tableau. Par exemple, nous avons un tableau bidimensionnel :

$arr = array(
     array('id'=>2,'name'=>'li', 'age'=>20),
     array('id'=>1,'name'=>'zhang', 'age'=>22),
     array('id'=>3,'name'=>'wang', 'age'=>18)
);

Nous pouvons utiliser la fonction sort() pour trier par le champ id :

sort($arr);
print_r($arr);

Le résultat de sortie est :

Array
(
    [0] => Array
        (
            [age] => 18
            [id] => 3
            [name] => wang
        )

    [1] => Array
        (
            [age] => 20
            [id] => 2
            [name] => li
        )

    [2] => Array
        (
            [age] => 22
            [id] => 1
            [name] => zhang
        )

)

On peut voir qu'après le tri par l'identifiant champ, les éléments sont triés par ordre croissant.

2. Utilisez la fonction usort() pour trier le tableau bidimensionnel

La fonction sort() ne peut trier que par le premier champ du tableau. Si vous souhaitez trier par d'autres champs, vous devez utiliser la fonction usort. () fonction. La fonction usort() doit transmettre une fonction de rappel personnalisée pour spécifier les règles de tri. Par exemple, nous voulons trier par champ d'âge :

function cmp($a, $b)
{
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] <$ b[&#39;age&#39;]) ? -1 : 1;
}

usort($arr, "cmp");
print_r($arr);

Le résultat de sortie est :

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

On peut voir qu'après le tri par champ d'âge, les éléments du tableau sont classés par ordre croissant d'âge.

3. Utilisez la fonction array_multisort() pour trier les tableaux bidimensionnels

La fonction array_multisort() est une fonction de tri très puissante qui peut trier les tableaux bidimensionnels selon plusieurs conditions. Si vous souhaitez trier sur plusieurs champs, vous pouvez utiliser la fonction array_multisort(). Par exemple, nous voulons d'abord trier par le champ d'âge. Si l'âge est le même, puis trier par l'identifiant :

$ages = array();
$ids = array();
foreach ($arr as $key => $value) {
    $ages[$key] = $value['age'];
    $ids[$key] = $value['id'];
}
array_multisort($ages, SORT_ASC, $ids, SORT_ASC, $arr);

print_r($arr);

Le résultat de sortie est :

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

On peut le voir après le tri par le champ d'âge et le champ d'âge. champ id, les éléments du tableau sont classés par ordre croissant d'âge. Organisez, si l'âge est le même, triez par identifiant par ordre croissant.

Résumé :

Cet article présente trois méthodes pour trier des tableaux bidimensionnels, en utilisant la fonction sort(), la fonction usort() et la fonction array_multisort(). En développement, la méthode à choisir dépend des besoins spécifiques. J'espère que cet article sera utile à tout le monde.

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