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


    主要是使用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);
  • 相关阅读:
    Java DatagramSocket(UDP)要注意的问题
    Codeforces 475D CGCDSSQ 求序列中连续数字的GCD=K的对数
    apk应用的反编译和源代码的生成
    字符串转换为整数”123“-&gt;123
    【LeetCode】Partition List
    Ubuntu下is not in the sudoers file 问题解决
    MySQL查看连接数
    使用HashMap须要注意的事儿:不要暴露Map.entry给外部不可信代码Map.entrySet()
    在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController
    iOS基本UI控件总结
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/6525008.html
Copyright © 2020-2023  润新知