仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 566|回复: 7
打印 上一主题 下一主题

[学习教程] PHP编程:PHP 多维数组排序 坚持索引对应干系 巧...

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
完成一个功能齐全的动态站点实践开辟中,多几少城市碰到数组的排序成绩,除惯例的写复杂的排序算法,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[value]==$param2[value])return0;elsereturn$param1[value]>$param2[value]?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[value]==$param2[value])return0;elsereturn$param1[value]>$param2[value]?1:-1;}//同上publicfunctionpublic_my_sort($param1,$param2){if($param1[value]==$param2[value])return0;elsereturn$param1[value]>$param2[value]?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”的缩写,这种将名称放到定义中的写法被称作递归缩写。
金色的骷髅 该用户已被删除
沙发
 楼主| 发表于 2015-1-18 22:52:44 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
乐观 该用户已被删除
板凳
发表于 2015-1-27 09:36:03 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
小女巫 该用户已被删除
地板
发表于 2015-2-5 09:27:42 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
因胸联盟 该用户已被删除
5#
发表于 2015-2-11 08:42:10 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
山那边是海 该用户已被删除
6#
发表于 2015-3-2 05:56:56 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
飘灵儿 该用户已被删除
7#
发表于 2015-3-11 03:09:58 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-24 23:34:48 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 22:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表