zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    动态规划-矩阵链乘法
    钢条切割问题
    代码着色
    Sublime配置C和C++编译运行环境
    Guava中集合类的简单实用
    Junit单元测试入门
    Sublime Text 快捷键
    Editplus 的配色方案
    利用Wireshark任意获取QQ好友IP实施精准定位
    linux下实现定时执行php脚本
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/6525008.html
Copyright © 2011-2022 走看看