• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP如何根据数组中的键值进行排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

 1 <?php
 2 $array = array(
 3     array(\'name\'=>\'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 <?php
 2 $array = array(
 3     array(\'name\'=>\'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);

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
几个有用的PHP.ini配置项-路径和目录发布时间:2022-07-10
下一篇:
在windows平台上构建自己的PHP(仅适用于php5.2)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap