PHP编程:PHP 多维数组排序 坚持索引对应干系 巧...
完成一个功能齐全的动态站点实践开辟中,多几少城市碰到数组的排序成绩,除惯例的写复杂的排序算法,PHP还供应了内置数组排序函数,本次重点分享一下:uasort利用用户自界说的对照函数对数组中的值举行排序并坚持索引联系关系,可排序多维数组,本文重点解说此函数。uasort函数参数范例:booluasort(array&$array,callable$cmp_function)本函数对数组排序并坚持索引和单位之间的联系关系。次要用于对那些单位按次很主要的分离数组举行排序。对照函数是用户自界说的。乐成时前往TRUE,大概在失利时前往FALSE。数组排序实例(非class中):复制代码1/**2*自界说排序函数3*@param$param14*@param$param25*@return0(不挪动)1(正向互换按次)-1(逆向互换按次)6*/78functionmy_sort($param1,$param2){9if($param1==$param2)return0;10elsereturn$param1>$param2?1:-1;11}1213$arr=array(14a=>20,15b=>1,16c=>10,17d=>5,18e=>21,19f=>4,20g=>3,21);2223uasort($arr,my_sort);2425var_dump($arr);2627/*输入值28array(size=7)29b=>string1(length=1)30g=>string3(length=1)31f=>string4(length=1)32d=>string5(length=1)33c=>string10(length=2)34a=>string20(length=2)35e=>string21(length=2)36*/复制代码多维数组排序实例(非class中):复制代码/***自界说排序函数*@param$param1*@param$param2*@return0(不挪动)1(正向互换按次)-1(逆向互换按次)*/functionmy_sort($param1,$param2){if($param1==$param2)return0;elsereturn$param1>$param2?1:-1;}$arr=array(a=>array(key=>界说1,value=>20),b=>array(key=>界说2,value=>1),c=>array(key=>界说3,value=>10),d=>array(key=>界说4,value=>5),e=>array(key=>界说5,value=>21),f=>array(key=>界说6,value=>4),g=>array(key=>界说7,value=>3),);uasort($arr,my_sort);var_dump($arr);/*输入值array(size=7)b=>array(size=2)key=>string界说2(length=7)value=>string1(length=1)g=>array(size=2)key=>string界说7(length=7)value=>string3(length=1)f=>array(size=2)key=>string界说6(length=7)value=>string4(length=1)d=>array(size=2)key=>string界说4(length=7)value=>string5(length=1)c=>array(size=2)key=>string界说3(length=7)value=>string10(length=2)a=>array(size=2)key=>string界说1(length=7)value=>string20(length=2)e=>array(size=2)key=>string界说5(length=7)value=>string21(length=2)*/复制代码class中排序,为了便利以二维数组为例:uasort($arr1,array($this,public_my_sort));uasort($arr2,array(self,self_my_sort));复制代码classmyClassSort{/***排序主办法*@param$arr1self静态排序*@param$arr2this排序*@return排序后的数组*/publicfunctionmain($arr1=array(),$arr2=array()){uasort($arr1,array($this,public_my_sort));uasort($arr2,array(self,self_my_sort));returnarray(arr1=>$arr1,arr2=>$arr2);}/***自界说排序函数*@param$param1*@param$param2*@return0(不挪动)1(正向互换按次)-1(逆向互换按次)*/privatestaticfunctionself_my_sort($param1,$param2){if($param1==$param2)return0;elsereturn$param1>$param2?1:-1;}//同上publicfunctionpublic_my_sort($param1,$param2){if($param1==$param2)return0;elsereturn$param1>$param2?1:-1;}}$arr=array(a=>array(key=>界说1,value=>20),b=>array(key=>界说2,value=>1),c=>array(key=>界说3,value=>10),d=>array(key=>界说4,value=>5),e=>array(key=>界说5,value=>21),f=>array(key=>界说6,value=>4),g=>array(key=>界说7,value=>3),);$myClassSort=newmyClassSort();var_dump($myClassSort->main($arr,$arr));/*输入了局同以上实例*/复制代码相似函数扩大array_multisort对多个数组或多维数组举行排序,可是终极填进利用的仍是详细一维数组arsort对一维数组举行逆向排序并坚持索引干系,坚持索引对应干系asort对一维数组举行正向排序并坚持索引干系,坚持索引对应干系krsort对数组依照键名逆向排序,坚持索引对应干系ksort对数组依照键名正向排序,坚持索引对应干系natcasesort用“天然排序”算法对一维数组举行不辨别巨细写字母的排序,能够用来排序数组内容中字母数字夹杂的情形,坚持索引对应干系natsort用“天然排序”算法对一维数组排序,辨别巨细写字母,能够用来排序数组内容中字母数字夹杂的情形,坚持索引对应干系rsort对一维数组逆向排序,不坚持索引对应干系sort对一维数组正向排序,不坚持索引对应干系uasort利用用户自界说的对照函数对数组中的值举行排序并坚持索引联系关系,可排序多维数组,本文重点解说此函数uksort利用用户自界说的对照函数对数组中的键名举行排序usort利用用户自界说的对照函数对数组中的值举行排序,不坚持索引联系关系PHP原始为PersonalHomePage的缩写,已经正式更名为"PHP:HypertextPreprocessor"。注意不是“HypertextPreprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
页:
[1]