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
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.
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 orderComparison functions should follow the following rules:
Returns one of the following values:
<?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);
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 ) )
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!