博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP如何根据数组中的键值进行排序
阅读量:6077 次
发布时间:2019-06-20

本文共 1740 字,大约阅读时间需要 5 分钟。

主要是使用PHP的排序函数,asort()和arsort()。

为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数

1 
'aa','price'=>1050), 4 array('name'=>'bb','price'=>4300), 5 array('name'=>'cc','price'=>3100), 6 array('name'=>'dd','price'=>4900), 7 array('name'=>'ee','price'=>960), 8 array('name'=>'ff','price'=>6299), 9 array('name'=>'gg','price'=>1200)10 );11 function arr_sort($array,$key,$order="asc"){ //asc是升序 desc是降序12 $arr_nums=$arr=array();13 foreach($array as $k=>$v){14 $arr_nums[$k]=$v[$key];15 }16 if($order=='asc'){17 asort($arr_nums);18 }else{19 arsort($arr_nums);20 }21 foreach($arr_nums as $k=>$v){22 $arr[$k]=$array[$k];23 }24 print_r($arr);25 }26 arr_sort($array,'price');

 

在PHP中,内置一个排序的函数 array_multisort(),可以参考上一篇的数组排序

1 
'aa','price'=>1050), 4 array('name'=>'bb','price'=>4300), 5 array('name'=>'cc','price'=>3100), 6 array('name'=>'dd','price'=>4900), 7 array('name'=>'ee','price'=>960), 8 array('name'=>'ff','price'=>6299), 9 array('name'=>'gg','price'=>1200)10 );11 //方法一12 function arr_sort($array,$key,$order="desc"){ //asc是升序 desc是降序13 $arr_nums=$arr=array();14 foreach($array as $k=>$v){15 $arr_nums[$k]=$v[$key];16 }17 if($order=='asc'){18 asort($arr_nums);19 }else{20 arsort($arr_nums);21 }22 foreach($arr_nums as $k=>$v){23 $arr[$k]=$array[$k];24 }25 print_r($arr);26 }27 arr_sort($array,'price');28 29 30 //方法二31 32 foreach ( $array as $key => $row ){33 $name[$key] = $row ['name'];34 $price[$key] = $row ['price'];35 }36 array_multisort($price, SORT_ASC, $name, SORT_DESC, $array);37 print_r($array);

 

转载于:https://www.cnblogs.com/xs-yqz/p/6525008.html

你可能感兴趣的文章
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>