Maison  >  Article  >  développement back-end  >  Trier les objets dans un tableau à l'aide de PHP, en préservant les noms de clés d'origine

Trier les objets dans un tableau à l'aide de PHP, en préservant les noms de clés d'origine

PHPz
PHPzoriginal
2024-05-04 17:12:02417parcourir

Réponse : En PHP, utilisez la fonction uasort() pour trier les objets d'un tableau selon une fonction de comparaison définie par l'utilisateur tout en conservant les noms de clés d'origine. Description détaillée : Syntaxe : règles de la fonction de comparaison uasort($array, $value_compare_func) : accepte deux éléments du tableau comme paramètres et renvoie -1 si le premier paramètre est inférieur au deuxième paramètre. Renvoie 0 si les deux paramètres sont égaux. le premier Le paramètre est supérieur au deuxième paramètre. Cas pratique : Définir une classe Student pour représenter l'objet étudiant Utilisez la fonction uasort() pour trier le tableau $students en fonction de l'âge des étudiants tout en conservant les noms de clés d'origine.

使用 PHP 对数组中的对象进行排序,保留原始键名

Utilisez PHP pour trier le tableau $students Tri des objets

En PHP, vous pouvez utiliser la fonction uasort() pour trier les objets dans un tableau tout en préservant les noms de clés d'origine. Cette fonction trie les éléments du tableau par ordre croissant ou décroissant à l'aide d'une fonction de comparaison fournie par l'utilisateur. uasort() 函数对数组中的对象进行排序,同时保留原始键名。该函数使用用户提供的比较函数,将数组元素按升序或降序排序。

语法

uasort ( array &$array, callable $value_compare_func ) : bool

其中:

  • $array 是要排序的数组,传递引用以便直接修改
  • $value_compare_func
  • Syntaxe

uasort (array &$array, callable $value_compare_func): bool

où :

  • $array est le tableau à trier, passez le référence donc Modifier directement
  • $value_compare_func est une fonction de comparaison fournie par l'utilisateur qui accepte deux valeurs comme paramètres et renvoie leurs résultats de comparaison par ordre croissant ou décroissant

      Fonction de comparaison
    • La fonction de comparaison doit suivre les règles suivantes :
    • reçoit deux éléments du tableau en paramètres
  • renvoie l'une des valeurs suivantes :

-1 : Le premier paramètre est inférieur au deuxième paramètre

0 : Les deux paramètres sont égaux

1 : Le premier Le premier paramètre est supérieur au deuxième paramètre

🎜Cas pratique🎜🎜Considérons un tableau contenant des objets étudiants, chaque élève a des attributs de nom et d'âge. Nous souhaitons trier les étudiants par âge par ordre croissant tout en conservant les noms de clés d'origine. 🎜🎜Code🎜
<?php

class Student
{
    public $name;
    public $age;

    public function __construct($name, $age)
    {
        $this->name = $name;
        $this->age = $age;
    }
}

$students = [
    "John Doe" => new Student("John Doe", 25),
    "Jane Smith" => new Student("Jane Smith", 22),
    "Peter Parker" => new Student("Peter Parker", 28)
];

uasort($students, function ($a, $b) {
    return $a->age <=> $b->age;
});

print_r($students);
🎜Sortie🎜
Array
(
    [Jane Smith] => Student Object
        (
            [name] => Jane Smith
            [age] => 22
        )
    [John Doe] => Student Object
        (
            [name] => John Doe
            [age] => 25
        )
    [Peter Parker] => Student Object
        (
            [name] => Peter Parker
            [age] => 28
        )
)
🎜Comme vous pouvez le constater, les étudiants ont été triés par âge par ordre croissant et les noms de clés d'origine sont toujours là. 🎜

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