How to sort a two-dimensional array in php
Apr 17, 2023 pm 04:37 PMIn 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) );
We can use the sort() function to sort by the id field:
sort($arr); print_r($arr);
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 ) )
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);
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 ) )
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);
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 ) )
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!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What Are the Latest PHP Coding Standards and Best Practices?

How Do I Work with PHP Extensions and PECL?

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

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

What are the optimization techniques for deduplication of PHP arrays

Can PHP array deduplication take advantage of key name uniqueness?

How to Use Reflection to Analyze and Manipulate PHP Code?

What are the best practices for deduplication of PHP arrays
