Home > Backend Development > PHP Tutorial > In PHP, how to sort an array based on comparison of array values?

In PHP, how to sort an array based on comparison of array values?

WBOY
Release: 2024-05-03 09:06:01
Original
924 people have browsed it

The methods for sorting arrays in PHP are: use the sort() function to sort in ascending order. Use the rsort() function to sort in descending order. Use the asort() function to sort values ​​in an associative array in ascending order. Use the arsort() function to sort values ​​in descending order for an associative array. Use custom comparison functions for more complex sorting.

在 PHP 中,如何根据数组值的比较对数组进行排序?

How to sort PHP array based on comparison of array values

In PHP, there are many ways to sort PHP array based on comparison of array values The comparison sorts the array. This article will introduce the use of built-in functions sort(), rsort(), asort(), arsort() and custom comparison functions Common ways to sort arrays.

Use sort() function:

sort() The function sorts the values ​​in the array from small to large Ascending.

$arr = [3, 5, 2, 7, 1];
sort($arr);
print_r($arr); // 输出: [1, 2, 3, 5, 7]
Copy after login

Use rsort() function:

rsort() The function sorts the values ​​in the array from large to small Small in descending order.

$arr = [3, 5, 2, 7, 1];
rsort($arr);
print_r($arr); // 输出: [7, 5, 3, 2, 1]
Copy after login

Use asort() function:

##asort() The function sorts the values ​​in the associative array from small to small Large ascending order, keys remain unchanged.

$arr = [
    "name" => "John",
    "age" => 30,
    "city" => "New York"
];
asort($arr);
print_r($arr); 
// 输出: [
//     "age" => 30,
//     "city" => "New York",
//     "name" => "John"
// ]
Copy after login

Use arsort() function:

arsort() The function sorts the values ​​in the associative array from large to large Sort in descending order to the smallest, the keys remain unchanged.

$arr = [
    "name" => "John",
    "age" => 30,
    "city" => "New York"
];
arsort($arr);
print_r($arr); 
// 输出: [
//     "name" => "John",
//     "city" => "New York",
//     "age" => 30
// ]
Copy after login

Use custom comparison functions:

For more complex sorting requirements, you can use custom comparison functions. The comparison function accepts two arguments and returns -1, 0, or 1, depending on whether the first argument is less than, equal to, or greater than the second argument.

function custom_sort($a, $b) {
    return strcmp($a["name"], $b["name"]);
}

$arr = [
    ["name" => "John", "age" => 30],
    ["name" => "Mary", "age" => 25],
    ["name" => "Bob", "age" => 35]
];
usort($arr, "custom_sort");
print_r($arr); 
// 输出: [
//     ["name" => "Bob", "age" => 35],
//     ["name" => "John", "age" => 30],
//     ["name" => "Mary", "age" => 25]
// ]
Copy after login

Practical case:

The following is a practical case that shows how to use the

sort() function to sort an array of video game characters by name Sort in ascending order:

$characters = [
    ["name" => "Mario", "level" => 5],
    ["name" => "Luigi", "level" => 3],
    ["name" => "Donkey Kong", "level" => 7]
];

sort($characters);
print_r($characters); 
// 输出: [
//     ["name" => "Donkey Kong", "level" => 7],
//     ["name" => "Luigi", "level" => 3],
//     ["name" => "Mario", "level" => 5]
// ]
Copy after login

The above is the detailed content of In PHP, how to sort an array based on comparison of array values?. 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