1、概念:
一、天然排序法:即按天然数的大小排序,例如“10>2”;
二、计算机标准排序法:是以逐个字符比较,排序,例如“2>10”(由于第一位2>1);
三、数值数组:带有数字 ID 键的数组;
四、关联数组:带有指定的键的数组,每一个键关联一个值。
五、默认的排序为按键值升序排序,排序方式为天然排序。数组
2、【帮助理解】
一、a(association)前缀表示以键值关联排序;
二、k(key)前缀表示以键名关联排序;
三、r(reverse)前缀表示以反方向排序。函数
3、排序
例子:spa
1 $arr = array("Ben"=>"2","peter"=>"10","Joe"=>"30"); 2 echo "-------------echo array-------------<br>"; 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 }
一、排序数值数组:
1)、sort:默认的排序,即按键值升序排序,由于该函数用于排序一维数组,全部排序出来的键名会被从新规定,关联数组用此方法排序,则关联数组的键名不被保留,换成的是数字键。
2)、rsort:该函数与sort函数用法相似,不一样的是按键值逆序排序。code
1 echo "-------------sorts by sort-------------<br>"; 2 sort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by rsort-------------<br>"; 9 rsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
输出结果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by sort-------------
key= 0,value= 2
key= 1,value= 10
key= 2,value= 30
-------------sorts by rsort-------------
key= 0,value= 30
key= 1,value= 10
key= 2,value= 2blog
二、排序关联数组:
关联数组的排序有两种排序项,第一种以数组的键名排序,第二种以数组的键值排序。
按键名排序:
1)、ksort:按关联数组的键名升序排序,排序的结果保留键值的关联关系。
2)、krsort:按关联数组的键名逆序排序,排序的结果保留键值的关联关系。排序
1 echo "-------------sorts by ksort--------------<br>"; 2 ksort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by krsort-------------<br>"; 9 krsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
输出结果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by ksort--------------
key= Ben,value= 2
key= Joe,value= 30
key= peter,value= 10
-------------sorts by krsort-------------
key= peter,value= 10
key= Joe,value= 30
key= Ben,value= 2 ci
按键值排序:
1)、asort:按关联数组的键值升序排序,排序的结果保留键值的关联关系
2)、arsort:按关联数组的键值逆序排序,排序的结果保留键值的关联关系。io
1 echo "-------------sorts by asort-------------<br>"; 2 asort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by arsort-------------<br>"; 9 arsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
输出结果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by asort-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by arsort-------------
key= Joe,value= 30
key= peter,value= 10
key= Ben,value= 2class