In the previous article "PHP In Array Learning: How to Intercept Element Fragments (Two Methods)", we introduced how to intercept arrays and return partial array element fragments Two methods. This time we continue the study of PHP arrays and talk about the method of sorting two-dimensional array elements. Friends who are interested can learn Learn more~
→Related recommendations: 《PHP array learning series summary (continuously updated~)》
We learned about something before There are several sorting methods for dimensional arrays. You know that PHP has many built-in functions to implement descending sorting and ascending sorting of one-dimensional arrays. So do two-dimensional arrays also have built-in functions to implement sorting?
The answer is: Yes! PHP has a built-in array_multisort()
function that can be used to sort two-dimensional arrays. Below we introduce to you two methods of sorting two-dimensional arrays using the array_multisort() function.
Method 1: foreach loop array_multisort() function
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); // 取得列的列表 foreach ($data as $key => $row) { $ID[$key] = $row['id']; $FirstName[$key] = $row['first_name']; $LastName[$key] = $row['last_name']; } array_multisort($ID, SORT_ASC, $data); var_dump($data); ?>
Analyze the code:
Use foreach loop to sort the same field Put the data together and use var_dump($ID)
, var_dump($FirstName)
, var_dump($LastName)
to try outputting each field data:
Use array_multisort($ID, SORT_ASC, $data)
According to the "id# in the two-dimensional array $data ##"The fields in that column are sorted in ascending order.
SORT_DESC That's it:
array_multisort($ID, SORT_DESC, $data);
array_multisort($LastName, SORT_DESC, $data);
array_multisort(array1,sorting order,sorting type,array2,array3...)
In method 1, we use foreach loop to get data for the same field, which is a bit complicated. In fact, you can use the array_column() function to achieve this operation. The array_column() function can return the value of a single column in the input array.
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); //根据字段id对数组$data进行升序排列 $key = array_column($data,'id'); array_multisort($key,SORT_ASC,$data); var_dump($data); ?>
Output result:
If you want to sort by which field, use the
array_column($data,'id') function Just replace the second parameter with that field (key value). For example, if you want to sort in descending order based on the field "first_name", you can:
$key = array_column($data,'first_name'); array_multisort($key,SORT_DESC,$data);
Let's take a look at array_column( )Function:
array_column() Returns the value of a single column in the input array. The syntax format is:
array_column(array,column_key,index_key);
Return value: Returns an array. The value of the array is the value of a single column in the input array.
Okay, that’s all. If you want to know anything else, you can click this. → →
php video tutorialFinally, I would like to recommend a free video tutorial on PHP arrays:
PHP function array array function video explanationThe above is the detailed content of How to sort two-dimensional arrays in PHP array learning (2 methods). For more information, please follow other related articles on the PHP Chinese website!