Sort objects in an array using PHP, preserving original key names

PHPz
Release: 2024-05-04 17:12:02
Original
413 people have browsed it

Answer: In PHP, use the uasort() function to sort objects in an array according to a user-defined comparison function while retaining the original key names. Detailed description: Syntax: uasort($array, $value_compare_func) comparison function rules: accepts two array elements as parameters and returns -1 if the first parameter is less than the second parameter. Returns 0 if the two parameters are equal. Returns 1 if the first one The parameter is greater than the second parameter. Practical case: Define a Student class to represent the student object. Use the uasort() function to sort the $students array according to the age of the students while retaining the original key names

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

Use PHP to sort objects in an array

In PHP, you can use the uasort() function to sort objects in an array while Keep the original key names. This function sorts the array elements in ascending or descending order using a user-supplied comparison function.

Syntax

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

Where:

  • $array is the array to be sorted, passed by reference for direct modification
  • $value_compare_func is a user-supplied comparison function that accepts two values ​​as arguments, in ascending order Or return their comparison results in descending order

Comparison functions

Comparison functions should follow the following rules:

  • Receive two array elements as parameters
  • Returns one of the following values:

    • -1: The first parameter is smaller than the second parameter
    • 0: The two parameters are equal
    • 1: The first parameter is greater than the second parameter
##Practical case

Consider an array containing student objects. Each student has a name and Age attribute. We want to sort students by age in ascending order while retaining the original key names.

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);
Copy after login

Output

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
        )
)
Copy after login

As you can see, the students have been sorted by age in ascending order and the original key names are still there.

The above is the detailed content of Sort objects in an array using PHP, preserving original key names. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template