首页 > 代码库 > php基础篇-二维数组排序姐妹篇
php基础篇-二维数组排序姐妹篇
前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击
二维数组排序 array_multisort
下面介绍下不适用array_multisort()进行多维数组的排序。
这里介绍下2个php排序函数,一个是asort,一个是arsort.
asort(array,sorttype) 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。
可选的第二个参数包含了附加的排序标识。
- SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
- SORT_NUMERIC - 把值作为数字来处理
- SORT_STRING - 把值作为字符串来处理
- SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置。
如果成功则返回 TRUE,否则返回 FALSE。
arsort(array,sorttype) 函数对数组进行逆向排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。这个函数的用法和asort一样,只不过这个是对数组的索引进行逆向排序。
下面给出二维数组的排序算法:
<?php function array_sort($arr,$key,$type='asc'){ $keyvalues = $new_array = array(); foreach ($arr as $k=>$v){ $keyvalues[$k] = $v[$key]; } if($type == 'asc'){ asort($keyvalues); }else{ arsort($keyvalues); } foreach ($keyvalues as $k=>$v){ $temparray[$k] = $arr[$k]; } return $temparray; } $student = array( array('name'=>'张三','age'=>'18','weight'=>100,'height'=>180), array('name'=>'李四','age'=>'20','weight'=>200,'height'=>150), array('name'=>'王五','age'=>'30','weight'=>150,'height'=>165), array('name'=>'赵六','age'=>'50','weight'=>90,'height'=>173), array('name'=>'孙七','age'=>'35','weight'=>160,'height'=>170) ); $studentlist = array_sort($student,'weight'); var_dump($studentlist);
通过asort这个函数,将保留二维数组的索引排序,再通过这个索引,即可得到排序好的二维数组的索引对应的值。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。