Home  >  Article  >  Backend Development  >  Sort arrays according to custom sorting rules in PHP, retaining original key names

Sort arrays according to custom sorting rules in PHP, retaining original key names

王林
王林Original
2024-05-04 09:27:01694browse

In PHP, use the uasort() function to sort an array by custom sorting rules while retaining the original key names. A custom comparison function is a function that takes two elements as input and returns an integer: a negative number means the former is less than the latter, zero means they are equal, and a positive number means the former is greater than the latter.

PHP 中按自定义排序规则对数组进行排序,保留原始键名

How to sort the array according to custom sorting rules in PHP and retain the original key names

In PHP, sort the array by custom sorting rules Defining collation rules to sort arrays is a common need. For example, you might want to sort a product list by product name, price, or other custom criteria.

PHP provides a built-in function uasort() that allows you to sort an array using a custom comparison function while preserving the original key names.

Syntax

uasort ( array &$array , callable $value_compare_func ) : bool
  • $array - Array to be sorted
  • $value_compare_func - Custom comparison function, returns positive number, negative number or zero

Custom comparison function

The custom comparison function is a function used to compare array elements . It takes two parameters $a and $b as input and returns an integer according to the following rules:

  • if $a is less than $b, then a negative number is returned.
  • If $a is equal to $b, zero is returned.
  • If $a is greater than $b, return a positive number.

Practical case

The following is an example of a custom comparison function that compares the length of two strings:

<?php
function compare_string_length($a, $b) {
    return strlen($a) - strlen($b);
}

Sorting the Array

Now let us sort the array by custom sorting rules. The following example will sort an array by string length from smallest to largest:

<?php
$fruits = array("apple", "banana", "orange", "grapefruit");

uasort($fruits, "compare_string_length");

print_r($fruits);

Output:

Array
(
    [grapefruit] => grapefruit
    [orange] => orange
    [apple] => apple
    [banana] => banana
)

As you can see, the array is now sorted by string length from shortest to largest , while retaining the original key names.

The above is the detailed content of Sort arrays according to custom sorting rules in PHP, retaining original key names. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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