Home >Backend Development >PHP Problem >How to sort a one-dimensional array in php (a brief analysis of the method)

How to sort a one-dimensional array in php (a brief analysis of the method)

PHPz
PHPzOriginal
2023-04-10 09:44:14802browse

PHP is a scripting language that is often used in web development applications. Array operations are one of the commonly used operations in PHP development, and arrays often need to be sorted for further processing.

The sort() and rsort() functions are usually used to sort one-dimensional arrays. The difference between them is that sort() sorts in ascending order, while rsort() sorts in descending order. Let's take a look at their usage.

sort() function

The sort() function can sort the array in ascending order. This function will change the key-value relationship of the original array and return a Boolean value (true or false) to indicate whether the sorting is successful.

For example, we have a one-dimensional array:

$arr = array(5,8,3,0,2,7,1);

We can use the sort() function to sort it in ascending order:

sort($arr);

The sorted array is:

Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 7 [6] => 8 )

The sort() function can also sort string arrays. It should be noted that the sort() function sorts according to the order of characters in the ASCII code table, not according to dictionary order.

For example, we have a string array:

$arr = array("apple", "banana", "peach", "orange");

We use the sort() function to sort it:

sort($arr);

The sorted array is:

Array ( [0] => apple [1] => banana [2] => orange [3] => peach )

It can be seen that the sorting results are not sorted in alphabetical order.

rsort() function

The rsort() function is basically the same as the sort() function, except that it is sorted in descending order.

For example, we have a one-dimensional array:

$arr = array(5,8,3,0,2,7,1);

We can use the rsort() function to sort it in descending order:

rsort($arr);

The sorted array is:

Array ( [0] => 8 [1] => 7 [2] => 5 [3] => 3 [4] => 2 [5] => 1 [6] => 0 )

rsort() function is also suitable for sorting string arrays.

asort() function and arsort() function

asort() function and arsort() function are basically the same as sort() function and rsort() function, except that they will retain the original array The key name (key-value relationship).

For example, we have an associative array:

$arr = array("apple" => 5, "banana" => 8, "peach" => 3, "orange" => 2);

We can use the asort() function to sort it in ascending order:

asort($arr);

The sorted array is:

Array ( [orange] => 2 [peach] => 3 [apple] => 5 [banana] => 8 )

You can see that the key name (key-value relationship) remains the same.

The arsort() function is also suitable for sorting associative arrays in descending order.

ksort() function and krsort() function

ksort() function and krsort() function are used to sort the key value array in ascending order and descending order by key name.

For example, we have an array of key values:

$arr = array("x" => 5, "z" => 8, "y" => 3, "w" => 2);

We can use the ksort() function to sort it in ascending order:

ksort($arr);

The sorted array is:

Array ( [w] => 2 [x] => 5 [y] => 3 [z] => 8 )

As you can see, the array elements are sorted by key name (alphabetical order).

The krsort() function is also suitable for sorting key value arrays in descending order.

Multi-dimensional array sorting

The above functions are suitable for sorting one-dimensional arrays. When dealing with multi-dimensional arrays, you need to pay attention to the hierarchical relationship of sorting.

For example, we have a two-dimensional array:

$arr = array(
    array("name" => "xiaoming", "age" => 30),
    array("name" => "xiaohong", "age" => 25),
    array("name" => "xiaoli", "age" => 20)
);

We can use the usort() function to sort it in ascending order by age:

usort($arr, function($a, $b){
    if($a["age"] == $b["age"]){
        return 0;
    }
    return ($a["age"] < $b["age"]) ? -1 : 1;
});

After sorting The array is:

Array
(
    [0] => Array
        (
            [name] => xiaoli
            [age] => 20
        )

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

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

)

As you can see, the usort() function sorts the two-dimensional array in ascending order according to age.

Summary

To sort a one-dimensional array, you can use the sort() function and rsort() function. To sort associative arrays, you can use the asort() function and arsort() function. To sort key-value arrays, you can use the ksort() function and krsort() function. When dealing with multi-dimensional arrays, you can use the usort() function to achieve sorting. The use of the above functions can greatly improve the efficiency and accuracy of array processing.

The above is the detailed content of How to sort a one-dimensional array in php (a brief analysis of the method). 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