Home Backend Development PHP Problem How to sort a two-dimensional array in php

How to sort a two-dimensional array in php

Apr 17, 2023 pm 04:37 PM

In development, we often need to sort data for better presentation and use. For two-dimensional arrays, sorting can be performed according to a certain data field. This article will introduce how to use PHP to sort a two-dimensional array.

1. Use the sort() function to sort a two-dimensional array

sort() is a built-in function of PHP that can sort the values ​​in the array in ascending order. When sorting a two-dimensional array, the sort() function sorts by the first field of the array by default. For example, we have a two-dimensional array:

$arr = array(
     array('id'=>2,'name'=>'li', 'age'=>20),
     array('id'=>1,'name'=>'zhang', 'age'=>22),
     array('id'=>3,'name'=>'wang', 'age'=>18)
);
Copy after login

We can use the sort() function to sort by the id field:

sort($arr);
print_r($arr);
Copy after login

The output result is:

Array
(
    [0] => Array
        (
            [age] => 18
            [id] => 3
            [name] => wang
        )

    [1] => Array
        (
            [age] => 20
            [id] => 2
            [name] => li
        )

    [2] => Array
        (
            [age] => 22
            [id] => 1
            [name] => zhang
        )

)
Copy after login

You can see Out, after sorting according to the id field, the elements in the array are arranged in ascending order.

2. Use the usort() function to sort the two-dimensional array

The sort() function can only sort the first field of the array. If you want to sort by other fields, you need to Use the usort() function. The usort() function needs to pass in a custom callback function to specify the sorting rules. For example, we want to sort by the age field:

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

usort($arr, "cmp");
print_r($arr);
Copy after login

The output result is:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)
Copy after login

It can be seen that after sorting by the age field, the elements in the array are arranged in ascending order of age.

3. Use array_multisort() function to sort two-dimensional arrays

The array_multisort() function is a very powerful sorting function that can sort two-dimensional arrays according to multiple conditions. If you want to sort by multiple fields, you can use the array_multisort() function. For example, we need to sort by the age field first. If the age is the same, then sort by the id:

$ages = array();
$ids = array();
foreach ($arr as $key => $value) {
    $ages[$key] = $value['age'];
    $ids[$key] = $value['id'];
}
array_multisort($ages, SORT_ASC, $ids, SORT_ASC, $arr);

print_r($arr);
Copy after login

The output result is:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)
Copy after login

It can be seen that after sorting by the age field and the id field , the elements in the array are arranged in ascending order by age, and if the age is the same, they are arranged in ascending order by id.

Summary:

This article introduces three methods to sort two-dimensional arrays, using the sort() function, usort() function and array_multisort() function. In development, which method to choose depends on specific needs. Hope this article is helpful to everyone.

The above is the detailed content of How to sort a two-dimensional 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

Hot Article

Hot Article

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What Are the Latest PHP Coding Standards and Best Practices? What Are the Latest PHP Coding Standards and Best Practices? Mar 10, 2025 pm 06:16 PM

What Are the Latest PHP Coding Standards and Best Practices?

How Do I Work with PHP Extensions and PECL? How Do I Work with PHP Extensions and PECL? Mar 10, 2025 pm 06:12 PM

How Do I Work with PHP Extensions and PECL?

How to Implement message queues (RabbitMQ, Redis) in PHP? How to Implement message queues (RabbitMQ, Redis) in PHP? Mar 10, 2025 pm 06:15 PM

How to Implement message queues (RabbitMQ, Redis) in PHP?

Does PHP array deduplication need to be considered for performance losses? Does PHP array deduplication need to be considered for performance losses? Mar 03, 2025 pm 04:47 PM

Does PHP array deduplication need to be considered for performance losses?

What are the optimization techniques for deduplication of PHP arrays What are the optimization techniques for deduplication of PHP arrays Mar 03, 2025 pm 04:50 PM

What are the optimization techniques for deduplication of PHP arrays

Can PHP array deduplication take advantage of key name uniqueness? Can PHP array deduplication take advantage of key name uniqueness? Mar 03, 2025 pm 04:51 PM

Can PHP array deduplication take advantage of key name uniqueness?

How to Use Reflection to Analyze and Manipulate PHP Code? How to Use Reflection to Analyze and Manipulate PHP Code? Mar 10, 2025 pm 06:12 PM

How to Use Reflection to Analyze and Manipulate PHP Code?

What are the best practices for deduplication of PHP arrays What are the best practices for deduplication of PHP arrays Mar 03, 2025 pm 04:41 PM

What are the best practices for deduplication of PHP arrays

See all articles