• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP数组递归排序实现方法示例

    本文实例讲述了PHP数组递归排序实现方法。分享给大家供大家参考,具体如下:

    /**
     * 递归根据特定key对数组排序
     * @param $data
     * @param string $orderKey
     * @param string $sonKey
     * @param int $orderBy
     * @return mixed
     */
    function recursion_orderby($data, $orderKey = 'order', $sonKey = 'children', $orderBy = SORT_ASC)
    {
      $func = function ($value) use ($sonKey, $orderKey, $orderBy) {
        if (isset($value[$sonKey])  is_array($value[$sonKey])) {
          $value[$sonKey] = recursion_orderby($value[$sonKey], $orderKey, $sonKey, $orderBy);
        }
        return $value;
      };
      return array_orderby(array_map($func, $data), $orderKey, $orderBy);
    }
    $a = [
      [
        'order' => 0,
      ],
      [
        'order' => -1,
        'children' => [
          [
            'order' => 0,
          ],
          [
            'order' => -2,
            'children' => [
              ['order' => 0],
              ['order' => -1],
              ['order' => 1],
            ],
          ],
        ],
      ],
      [
        'order' => 2,
      ],
    ];
    var_dump(recursion_orderby($a));
    /**
     * 输出:
    array(3) {
     [0] =>
     array(2) {
      'order' =>
      int(-1)
      'children' =>
      array(2) {
       [0] =>
       array(2) {
        'order' =>
        int(-2)
        'children' =>
        array(3) {
         [0] =>
         array(1) {
          'order' =>
          int(-1)
         }
         [1] =>
         array(1) {
          'order' =>
          int(0)
         }
         [2] =>
         array(1) {
          'order' =>
          int(1)
         }
        }
       }
       [1] =>
       array(1) {
        'order' =>
        int(0)
       }
      }
     }
     [1] =>
     array(1) {
      'order' =>
      int(0)
     }
     [2] =>
     array(1) {
      'order' =>
      int(2)
     }
    }
    */
    
    

    注:这里的array_orderby方法在前面一篇《php自定义二维数组排序函数array_orderby用法》中有详细介绍

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

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

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》

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

    您可能感兴趣的文章:
    • php求斐波那契数的两种实现方式【递归与递推】
    • php菜单/评论数据递归分级算法的实现方法
    • PHP实现无限极分类的两种方式示例【递归和引用方式】
    • PHP利用递归函数实现无限级分类的方法
    • PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
    • PHP递归写入MySQL实现无限级分类数据操作示例
    • PHP迭代与递归实现无限级分类
    • PHP实现递归的三种方法
    上一篇:php自定义二维数组排序函数array_orderby用法示例
    下一篇:PHP使用PDO从mysql读取大量数据处理详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP数组递归排序实现方法示例 PHP,数组,递归,排序,实现,