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

How do you sort an array in PHP?

Robert Michael Kim
Robert Michael KimOriginal
2025-03-19 11:42:31216browse

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:

<code class="php">$numbers = array(4, 2, 8, 6, 1);
sort($numbers);
print_r($numbers);</code>

This will output:

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

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:

<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
print_r($fruits);</code>

This will output:

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

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.

    <code class="php">sort($array);</code>
  2. rsort(): Sorts an array in descending order and resets the keys to a continuous numerical index starting from 0.

    <code class="php">rsort($array);</code>
  3. asort(): Sorts an array in ascending order, maintaining index association.

    <code class="php">asort($array);</code>
  4. arsort(): Sorts an array in descending order, maintaining index association.

    <code class="php">arsort($array);</code>
  5. ksort(): Sorts an array by key in ascending order.

    <code class="php">ksort($array);</code>
  6. krsort(): Sorts an array by key in descending order.

    <code class="php">krsort($array);</code>
  7. natsort(): Sorts an array using a "natural order" algorithm, which is useful for sorting strings that contain numbers.

    <code class="php">natsort($array);</code>
  8. natcasesort(): Sorts an array using a case-insensitive "natural order" algorithm.

    <code class="php">natcasesort($array);</code>
  9. usort(): Sorts an array by a user-defined comparison function.

    <code class="php">usort($array, 'comparison_function');</code>
  10. uasort(): Sorts an array with a user-defined comparison function and maintains index association.

    <code class="php">uasort($array, 'comparison_function');</code>
  11. uksort(): Sorts an array by keys using a user-defined comparison function.

    <code class="php">uksort($array, 'comparison_function');</code>

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:

<code class="php">$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);</code>

This will output:

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

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

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

)</code>

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:

<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
print_r($fruits);</code>

This will output:

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

Using arsort() for descending order:

<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
print_r($fruits);</code>

This will output:

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

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