PHP array sorting is actually sorting PHP arrays. In this article, it is sorting the result set from the database query. Database query results sometimes cannot be used directly, such as the results obtained using the in statement in mysql, so the results need to be sorted in some way. At this time, you need to sort the PHP array. See the example below to sort database results: In this example, each cell in the data array represents a row in a table. This is a typical way for databases to store array data. The data is all stored in an array named data. This is usually the result obtained from the database through a loop, such as mysql_fetch_assoc() (in fact, you can think of this function as the same as the mysql_fetch_assoc() function. For specific differences, you can read the difference in keys in the PHP manual). In this example, volume will be sorted in descending order and edition will be sorted in ascending order. Now you have an array with rows, but array_multisort() requires an array with columns, so use the following code to get the columns and then sort them. // Sort the data in descending order according to volume and in ascending order according to edition The data collection is now sorted, and the results are as follows: In fact, there are many methods that can be used when sorting, such as arsort(), asort(), ksort(), krsort(), natsort(), natcasesort(), rsort that comes with PHP’s array array. (), usort(), array_multisort() and uksort().
The data in the example is as follows:
volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
$data[] = array(volume => 67, edition => 2);
$data[] = array(volume => 86, edition => 1);
$ data[] = array(volume => 85, edition => 6);
$data[] = array(volume => 98, edition => 2);
$data[] = array(volume => 86, edition => 6);
$data[] = array(volume => 67, edition => 7);
// Get the list of columns
foreach ($data as $key => $row) {
$volume[$key] = $row[volume];
$edition[$key ] = $row[edition];
}
// Use $data as the last parameter and sort by common key
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data );
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7