1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
      <output id="hzk7v"></output>
    2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
    3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

      PHP实现二维数组按照指定的字段进行排序算法示例

       更新时间£º2019年04月23日 14:24:42   作者£º李维山   我要评论

      这篇文章主要介绍了PHP实现二维数组按照指定的字段进行排序算法,涉及php针对数组的遍历¡¢排序等相关操作技巧,需要的朋友可以参考下

      本文实例讲述了PHP实现二维数组按照指定的字段进行排序算法¡£分享给大家供大家参考£¬具体如下£º

      遇到问题£º把两个数组用php?#28304;?#30340;array_merge()函数合并之后£¬想按照两个数组中共有的'post_time'字段为新数组进行排序

      解决办法£º通过查阅官方手册£¬得知有array_multisort()这个函数£¬可以对多个数组或多维数组进行排序£¬返回排序之后的数组£¬其中字符串键名将被保留£¬但是数字键名将被重新索引£¬从 0 开始£¬并以 1 递增¡£

      下面封装了这个函数£¬便于调用£º

      /**
       * 二维数组按照指定字段进行排序
       * @params array $array 需要排序的数组
       * @params string $field 排序的字段
       * @params string $sort 排序顺序标志 SORT_DESC 降序£»SORT_ASC 升序
       */
      function arraySequence($array, $field, $sort = 'SORT_DESC') {
       $arrSort = array();
       foreach ($array as $uniqid => $row) {
        foreach ($row as $key => $value) {
         $arrSort[$key][$uniqid] = $value;
        }
       }
       array_multisort($arrSort[$field], constant($sort), $array);
       return $array;
      }
      //测试£º
      $arrDemo = array(
      array('name'=>'Jack','age'=>'22'),
      array('name'=>'Tom','age'=>'24'),
      array('name'=>'Green','age'=>'21'),
      array('name'=>'Ben','age'=>'23'),);
      $arrDemo = arraySequence($arrDemo,'age');
      print_r($arrDemo);
      
      

      运行结果£º

      Array
      (
          [0] => Array
              (
                  [name] => Tom
                  [age] => 24
              )

          [1] => Array
              (
                  [name] => Ben
                  [age] => 23
              )

          [2] => Array
              (
                  [name] => Jack
                  [age] => 22
              )

          [3] => Array
              (
                  [name] => Green
                  [age] => 21
              )

      )

      新增£º按照指定的多个字段排序

      /**
       * 二维数组按照指定的多个字段进行排序
       *
       * 调用示例£ºsortArrByManyField($arr,'id',SORT_ASC,'age',SORT_DESC);
       */
      function sortArrByManyField(){
       $args = func_get_args();
       if(empty($args)){
        return null;
       }
       $arr = array_shift($args);
       if(!is_array($arr)){
        throw new Exception("第一个参数应为数组");
       }
       foreach($args as $key => $field){
        if(is_string($field)){
         $temp = array();
         foreach($arr as $index=> $val){
          $temp[$index] = $val[$field];
         }
         $args[$key] = $temp;
        }
       }
       $args[] = &$arr;//引用值
       call_user_func_array('array_multisort',$args);
       return array_pop($args);
      }
      //测试£º
      $arrDemo = array(
      array('name'=>'Jack','age'=>'22'),
      array('name'=>'Tom','age'=>'24'),
      array('name'=>'Green','age'=>'21'),
      array('name'=>'Ben','age'=>'23'),);
      $arrDemo = sortArrByManyField($arrDemo,'age');
      print_r($arrDemo);
      
      

      运行结果£º

      Array
      (
          [0] => Array
              (
                  [name] => Green
                  [age] => 21
              )

          [1] => Array
              (
                  [name] => Jack
                  [age] => 22
              )

          [2] => Array
              (
                  [name] => Ben
                  [age] => 23
              )

          [3] => Array
              (
                  [name] => Tom
                  [age] => 24
              )

      )

      PS£º这里再为大家推荐一款关于排序的演示工具供大家参考£º

      在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具£º
      http://tools.jb51.net/aideddesign/paixu_ys

      更多关于PHP相关内容?#34892;?#36259;的读者可查看本站专题£º¡¶PHP数组(Array)操作技巧大全¡·¡¢¡¶php排序算法总结¡·¡¢¡¶PHP数据结构与算法教程¡·¡¢¡¶php程序设计算法总结¡·¡¢¡¶php字符串(string)用法总结¡·及¡¶PHP常用遍历算法与技巧总结¡·

      希望本文所述对大家PHP程序设计有所帮助¡£

      相关文章

      • php表单转换textarea换行符的方法

        php表单转换textarea换行符的方法

        今天在项目中遇到一个textarea换行的问题£¬调试了半天都没有解决¡£要将textarea里的回车换行转换成br存入数据库¡£
        2010-09-09
      • PHP转换文本框内容为HTML格式的方法

        PHP转换文本框内容为HTML格式的方法

        这篇文章主要介绍了PHP转换文本框内容为HTML格式的方法,通过自定义函数实现字符串转换为HTML格式的功能,涉及php针对HTML标签的替换技巧,需要的朋友可以参考下
        2016-07-07
      • php mysql_list_dbs()函数用法示例

        php mysql_list_dbs()函数用法示例

        这篇文章主要介绍了php mysql_list_dbs()函数用法,简单介绍了mysql_list_dbs()函数的功能及列出mysql所有数据库的实现技巧,需要的朋友可以参考下
        2017-03-03
      • 修改了一个很不错的php验证码(支持中文)

        修改了一个很不错的php验证码(支持中文)

        很早前在PHP喜悦国际村看到的一个验证码类£¬写的很强¡£但?#34892;?#36923;辑方面感觉处理的不好£¬然后我不?#19981;?#23436;全用session来处理验证码¡£这在大型系统中是很不好的
        2007-02-02
      • PHP无刷新上传文件实现代码

        PHP无刷新上传文件实现代码

        PHP无刷新上传文件实现代码£¬使用php的朋友可以参考下¡£
        2011-09-09
      • PHP结合Ueditor并修改?#35745;?#19978;传路径

        PHP结合Ueditor并修改?#35745;?#19978;传路径

        使用ueditor编辑器£¬附件默认在ueditor/php/upload/, 但是大家的附件地址的默?#19979;?#24452;可不是这个 ,需要修改ueditor£¬具体如何操作呢£¬下面我们就来详细讲解下
        2016-10-10
      • PHP通用检测函数集合

        PHP通用检测函数集合

        这些函数?#23478;?#27979;试才能使用£¬不保证个个都能使用£¬很多好的代码函数都可以在phpcms£¬dedecms£¬帝国cms中查找¡£
        2011-02-02
      • php的ZipArchive类用法实例

        php的ZipArchive类用法实例

        这篇文章主要介绍了php的ZipArchive类用法实例,较为详细的讲述了ZipArchive类操作zip文件的方法,需要的朋友可以参考下
        2014-10-10
      • php实现数字补零的方法总结

        php实现数字补零的方法总结

        这篇文章给大家总结了关于php实现数字补零的方法以及相关代码分享£¬?#34892;?#36259;的朋友们学习下¡£
        2018-09-09

      最新评论

      3dÊÔ»úºÅÖвÊÍø

        1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
          <output id="hzk7v"></output>
        2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
        3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

            1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
              <output id="hzk7v"></output>
            2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
            3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>