PHP还是比较常用的,于是我研究了一下PHP数组排序,在这里拿出来和大家分享一下,希望对大家有用。在了解了usort自定义排序后,我们再来看看sort(),这个函数可谓是数组里的排序函数的鼻祖,大家肯定发现所有的PHP数组排序函数都会带有sort作为后缀。函数原型:bool sort ( array &array [, int sort_flags] )说明:基本上每个函数都会有个可选的参数,sort也不例外。这个可选参数指明的一种习惯。
可选类型有如下几种:
◆SORT_REGULAR – 正常比较单元(不改变类型) //按照ASCII值排序(B大于a)
◆SORT_NUMERIC – 单元被作为数字来比较 //对整数和浮点数常用这种参数
◆SORT_STRING – 单元被作为字符串来比较
◆SORT_LOCALE_STRING – 根据当前的区域(locale)设置来把单元当作字符串比较
还是看个例子,来自帮助手册:
<ol class="dp-xml"> <li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span> </span></span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">fruits</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("lemon", "orange", "banana", "apple"); </span> </li> <li class="alt"><span>sort($fruits); </span></li> <li class=""> <span>foreach ($fruits as $</span><span class="attribute"><font color="#ff0000">key</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> $val) { </span> </li> <li class="alt"><span>echo "fruits[".$key."] = " . $val . "n"; </span></li> <li class=""><span>} </span></li> <li class="alt"> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> </ol>
这个PHP数组排序的结果如下:
<ol class="dp-xml"> <li class="alt"><span><span>fruits[0] = apple </span></span></li> <li class=""><span>fruits[1] = banana </span></li> <li class="alt"><span>fruits[2] = lemon </span></li> <li class=""><span>fruits[3] = orange </span></li> </ol>
大家可以发现,原来是索引为0的lemon,再排序后就变成了apple。为了保持原来的键/值不变,你可以把sort()换成asort()即可。另外这两个函数是对键进行升序的排列(a在b的前面)。如果要使其进行降序,只要使用rsort()代替即可,相对应的arsort()是保持原来的键/值的相关联性的。
下面简要介绍下ksort()函数
<ol class="dp-xml"> <li class="alt"><span><span>shuffle()//函数的使用 </span></span></li> <li class=""><span>Shuffle()//用来对一个数组进行随机排序,这个有点像抽签,其他的就不多说了。到用的时候再看吧。 </span></li> <li class="alt"><span>array_rand()//函数的使用 </span></li> <li class=""><span>array_rand()//函数和shuffle()差不多,也是随机返回数组中的元素,如下调用: </span></li> <li class="alt"><span>array_rand ( array [, int num_req] ) //可选参数指出你要返回的个数。 </span></li> </ol>
到此我想数组的排序我们已经有所了解了,如果还有什么"遗撼"以后再来弥补吧。