Maison > développement back-end > tutoriel php > Comment trier les tableaux en php

Comment trier les tableaux en php

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-03-03 09:16:09
original
494 Les gens l'ont consulté

How to Sort Arrays in PHP

Gestion des données triées est toujours plus facile pour extraire des informations spécifiques, sinon vous devez itérer à travers chaque élément du tableau un par un.

Par exemple, supposons que vous stockiez les notes de différents étudiants dans un tableau ou une table. Si les données ne sont pas triées par les notes obtenues, vous devez vérifier les notes de chaque élève de la classe pour déterminer qui obtient les scores les plus élevés et les plus bas. Si le tableau a été trié de bas à haut par notes, vous pouvez connaître le score le plus bas en vérifiant simplement les notes de l'étudiant.

Cet article introduira les méthodes de tri de tableau PHP suivantes:

  • Trier le tableau par valeur

  • Trier le tableau associatif

  • Trier les éléments du tableau par valeur à l'aide de fonctions définies par l'utilisateur

  • Array de tri des clés

  • Triage du tableau multidimensionnel PHP

  • Tri avec des fonctions définies par l'utilisateur

  • Sort multiple en colonne

Le tri le rend très facile et efficace pour de nombreuses tâches qui nécessitent l'accès ou l'obtention d'un ensemble de données spécifique. Dans ce tutoriel, nous apprendrons à trier les tableaux de différents types à l'aide de fonctions PHP intégrées.

Trier le tableau par valeur

Dans PHP, le tri des tableaux par valeurs d'élément est très facile. Vous pouvez choisir de conserver ou de éliminer les associations de valeurs clés, ou vous pouvez définir vos propres fonctions pour décider comment trier les éléments. Je vais vous montrer comment le faire dans cette section de ce tutoriel.

Vous pouvez utiliser la fonction array_multisort(), qui peut trier les tableaux multidimensionnels basés sur plusieurs colonnes ou valeurs multidimensionnelles. Il vous suffit de créer un tableau contenant les valeurs clés que vous souhaitez utiliser pour le tri. Après cela, passez le drapeau de tri.

L'exemple suivant devrait vous donner une compréhension claire:

$players = [
    [
        'name' => 'Adam',
        'score' => 70,
        'health' => 80
    ],
    [
        'name' => 'Joey',
        'score' => 60,
        'health' => 90
    ],
    [
        'name' => 'Monty',
        'score' => 70,
        'health' => 45
    ],
    [
        'name' => 'Andrew',
        'score' => 90,
        'health' => 80
    ],
    [
        'name' => 'Sally',
        'score' => 60,
        'health' => 85
    ],
    [
        'name' => 'Amanda',
        'score' => 98,
        'health' => 50
    ],
    [
        'name' => 'James',
        'score' => 50,
        'health' => 50
    ]
];

$p_score = array_column($players, 'score');
$p_health = array_column($players, 'health');

array_multisort($p_score, SORT_DESC, $p_health, SORT_ASC, $players);
Copier après la connexion
Copier après la connexion

Nous avons un tableau multidimensionnel qui stocke le nom du joueur , score et Santé . Nous utilisons les fonctions $p_score et array_multisort(). Cela aura un impact sur le résultat final. Le $p_score que nous passons sera trié par ordre décroissant. Cela mettra Amanda en haut car elle a le score le plus élevé. Maintenant, les éléments du tableau $players seront également réarrangés afin que la santé d'Amanda soit en haut de $players.

En d'autres termes, les tableaux $p_score sont organisés par ordre décroissant. Les valeurs dans d'autres tableaux seront ensuite réorganisées pour correspondre également à cette commande. Par conséquent, l'ordre sera amanda , Andrew , Adam , Monty et ainsi de suite.

une fois qu'il passe par tout le tableau $p_health. Vous remarquerez que Adam et Monty ont les mêmes scores. Par conséquent, leur position finale sera déterminée par leur santé, qui doit être triée par ordre croissant. La santé de Monty est inférieure à Adam , donc il sera en avance sur Adam . L'Ordre des joueurs deviendra désormais Amanda , Andrew , Monty , Adam et ainsi de suite.

Tous les autres conflits de valeurs sont résolus de manière similaire. Voici le résultat final que vous obtiendrez après le tri du tableau:

$players = [
    [
        'name' => 'Adam',
        'score' => 70,
        'health' => 80
    ],
    [
        'name' => 'Joey',
        'score' => 60,
        'health' => 90
    ],
    [
        'name' => 'Monty',
        'score' => 70,
        'health' => 45
    ],
    [
        'name' => 'Andrew',
        'score' => 90,
        'health' => 80
    ],
    [
        'name' => 'Sally',
        'score' => 60,
        'health' => 85
    ],
    [
        'name' => 'Amanda',
        'score' => 98,
        'health' => 50
    ],
    [
        'name' => 'James',
        'score' => 50,
        'health' => 50
    ]
];

$p_score = array_column($players, 'score');
$p_health = array_column($players, 'health');

array_multisort($p_score, SORT_DESC, $p_health, SORT_ASC, $players);
Copier après la connexion
Copier après la connexion

peut être évident maintenant, mais je veux toujours souligner que sort() appelle un tableau séparé. Voici un exemple:

print_r($players);
/*
Array
(
    [0] => Array
        (
            [name] => Amanda
            [score] => 98
            [health] => 50
        )

    [1] => Array
        (
            [name] => Andrew
            [score] => 90
            [health] => 80
        )

    [2] => Array
        (
            [name] => Monty
            [score] => 70
            [health] => 45
        )

    [3] => Array
        (
            [name] => Adam
            [score] => 70
            [health] => 80
        )

    [4] => Array
        (
            [name] => Sally
            [score] => 60
            [health] => 85
        )

    [5] => Array
        (
            [name] => Joey
            [score] => 60
            [health] => 90
        )

    [6] => Array
        (
            [name] => James
            [score] => 50
            [health] => 50
        )

)
*/
Copier après la connexion

Si votre objectif est de trier les deux tableaux dans l'ordre croissant, utilisez sort() pour ces deux tableaux séparément.

Résumé

Dans ce tutoriel, je vous ai montré différentes fonctions en PHP qui peuvent être utilisées pour trier les tableaux par des touches ou des valeurs. Nous avons également appris à trier les tableaux par clé ou valeur en utilisant nos propres fonctions de tri personnalisées et les fonctions uksort() et uasort(). La dernière section explique comment trier toutes les valeurs dans un tableau multidimensionnel en utilisant uniquement des champs spécifiques.

J'espère que vous avez appris quelque chose de nouveau à partir de ce tutoriel. Si vous avez des questions ou des suggestions, veuillez me le faire savoir dans les commentaires. La meilleure façon d'apprendre est d'essayer de créer vos propres exemples, en utilisant ces fonctions pour trier les tableaux.

Cet article a été mis à jour et contient des contributions de Monty Shokeen. Monty est un développeur complet qui aime également écrire des tutoriels et apprendre de nouvelles bibliothèques JavaScript.

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