There are many array sorting functions in php (rsort, sort, asort, rsort, krsort, ksort, array_multisort). Let me summarize for you some of the array sorting functions we commonly use and the array sorting written by users themselves. Examples, friends who need to use them can refer to them.
The most commonly used function for array sorting is sort($arr); its function is to sort the array keys in ascending order, and the sorted array key names are no longer the original key names, but are reset according to the new array key name.
And sometimes we require more complex sorting. For example, if you sort by key name, the ksort($arr); function is used here, which will sort the array according to the key name and maintain the original key-value relationship. The corresponding asort($arr); function sorts by key value and maintains the original key-value relationship.
Same principle, rsort(); arsort(); krsort(); function is the same as sort(); rsort(); ksort(); except that the sorting is in descending order.
Array operations are a very important foundation of PHP, and I hope you can use them well.
Sort by key value
That is, the order is arranged according to the size of the identifier ASCⅡ code value.
ksort(): Sort by array identifier order
krsort(): Sort array identifier in reverse order
Example 1:
The code is as follows | Copy code | ||||||||
'd'=>'asp',
echo "$key = $val".'
|
asort(): Sort the array from small to large;
rsort(): Sort the array in reverse order from large to small.代码如下 | 复制代码 |
sort($languages); |
Change lines 8-11 of Example 1 to:
The code is as follows | Copy code | ||||
asort($languages); print_r($languages);
echo "
|
The code is as follows | Copy code |
sort($languages);
foreach($languages as $key=>$val){
echo "languages[$key] = $val".' '; }; |
The code is as follows | Copy code |
$ar1 = array("10", 100, 100, "a");<🎜> $ar2 = array(1, 3, "2", 1);<🎜> array_multisort($ar1, $ar2);<🎜> <🎜>var_dump($ar1);<🎜> var_dump($ar2);<🎜> ?> |
After sorting in this example, the first array will contain "10", "a", 100, 100. The second array will contain 1,1,"2",3. The order of the items in the second array is exactly the same as the order of the corresponding items (100 and 100) in the first array.
The code is as follows | Copy code | ||||||||
[0]=> string(2) "10" [1]=> string(1) "a"[2]=> int(100) [3]=> int(100)
array(4) { [0]=> int(1)
[1]=> int(1) |
Example 2. Sort multidimensional array
The code is as follows | Copy code |
代码如下 | 复制代码 |
$aa = array (array ("score"=>60), array ("score"=>70), array ("score"=>80), array ("score"=>90), array ("score"=>20), array ("score"=>10), array ("score"=>50), array ("score"=>30)); echo '------排序前输出------ '; var_dump($aa); // 排序前输出 usort($aa, "cmp"); // 排序处理(从大到小) echo ' ------排序后输出------ '; var_dump($aa); // 排序完输出 /** * 自定义排序条件 * @param array $a * @param array $b * @return bool */ function cmp($a, $b) { if ($a["score"] == $b["score"]) { return 0; } return ($a["score"] < $b["score"]) ? 1 : -1; } ?> |
The code is as follows | Copy code |
<🎜>
$aa = array (array ("score"=>60),
array ("score"=>70),
Array ("score"=>80),
Array ("score"=>90),
array ("score"=>20),
array ("score"=>10),
array ("score"=>50),
array ("score"=>30));
echo '------Output before sorting------ '; var_dump($aa); // Output before sorting usort($aa, "cmp"); // Sorting processing (from large to small) echo ' ------Output after sorting------ '; var_dump($aa); // Output after sorting /** * Custom sorting conditions * @param array $a * @param array $b * @return bool */ function cmp($a, $b) { if ($a["score"] == $b["score"]) { return 0; } return ($a["score"] < $b["score"]) ? 1 : -1;<🎜> }<🎜> <🎜> ?> |
输出结果:
代码如下
|
复制代码 | ||||
http://www.bkjia.com/PHPjc/631541.html