Home > Backend Development > PHP Tutorial > How do you sort an array in PHP?

How do you sort an array in PHP?

Robert Michael Kim
Release: 2025-03-19 11:42:31
Original
213 people have browsed it

How do you sort an array in PHP?

In PHP, sorting an array can be achieved using various built-in functions. Let's take a look at how you can sort a simple array.

Sorting a simple numeric array:

To sort a simple numeric array in ascending order, you can use the sort() function. Here’s an example:

$numbers = array(4, 2, 8, 6, 1);
sort($numbers);
print_r($numbers);
Copy after login

This will output:

<code>Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 6
    [4] => 8
)</code>
Copy after login

Sorting a simple associative array:

For associative arrays, you can use the asort() function to maintain the key-value associations while sorting by value. Here’s an example:

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
print_r($fruits);
Copy after login
Copy after login

This will output:

<code>Array
(
    [c] => apple
    [b] => banana
    [d] => lemon
    [a] => orange
)</code>
Copy after login
Copy after login

What are the different sorting functions available in PHP for arrays?

PHP provides several functions to sort arrays based on different criteria. Below is a list of the main sorting functions:

  1. sort(): Sorts an array in ascending order and resets the keys to a continuous numerical index starting from 0.

    sort($array);
    Copy after login
  2. rsort(): Sorts an array in descending order and resets the keys to a continuous numerical index starting from 0.

    rsort($array);
    Copy after login
  3. asort(): Sorts an array in ascending order, maintaining index association.

    asort($array);
    Copy after login
  4. arsort(): Sorts an array in descending order, maintaining index association.

    arsort($array);
    Copy after login
  5. ksort(): Sorts an array by key in ascending order.

    ksort($array);
    Copy after login
  6. krsort(): Sorts an array by key in descending order.

    krsort($array);
    Copy after login
  7. natsort(): Sorts an array using a "natural order" algorithm, which is useful for sorting strings that contain numbers.

    natsort($array);
    Copy after login
  8. natcasesort(): Sorts an array using a case-insensitive "natural order" algorithm.

    natcasesort($array);
    Copy after login
  9. usort(): Sorts an array by a user-defined comparison function.

    usort($array, 'comparison_function');
    Copy after login
  10. uasort(): Sorts an array with a user-defined comparison function and maintains index association.

    uasort($array, 'comparison_function');
    Copy after login
  11. uksort(): Sorts an array by keys using a user-defined comparison function.

    uksort($array, 'comparison_function');
    Copy after login

How can you sort a multidimensional array in PHP?

Sorting a multidimensional array in PHP can be done using custom comparison functions with usort(), uasort(), or uksort(). Here is an example of sorting a multidimensional array based on a specific key within the sub-arrays.

Let’s say you have an array of people with their names and ages, and you want to sort them by age in ascending order:

$people = array(
    array("name" => "John", "age" => 25),
    array("name" => "Jane", "age" => 30),
    array("name" => "Jim", "age" => 20)
);

function compareAge($a, $b) {
    return $a['age'] <=> $b['age'];
}

usort($people, 'compareAge');
print_r($people);
Copy after login

This will output:

<code>Array
(
    [0] => Array
        (
            [name] => Jim
            [age] => 20
        )

    [1] => Array
        (
            [name] => John
            [age] => 25
        )

    [2] => Array
        (
            [name] => Jane
            [age] => 30
        )

)</code>
Copy after login

Can you sort an array in PHP while maintaining the index association?

Yes, you can sort an array in PHP while maintaining the index association using the asort() and arsort() functions.

Using asort() for ascending order:

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
print_r($fruits);
Copy after login
Copy after login

This will output:

<code>Array
(
    [c] => apple
    [b] => banana
    [d] => lemon
    [a] => orange
)</code>
Copy after login
Copy after login

Using arsort() for descending order:

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
print_r($fruits);
Copy after login

This will output:

<code>Array
(
    [a] => orange
    [d] => lemon
    [b] => banana
    [c] => apple
)</code>
Copy after login

Both of these functions will sort the array by value, but the keys will remain associated with their respective values.

The above is the detailed content of How do you sort an array in PHP?. For more information, please follow other related articles on the PHP Chinese website!

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