最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP數組遞歸排序實現(xiàn)方法示例

 更新時間:2018年03月21日 11:21:47   作者:alexander_phper  
這篇文章主要介紹了PHP數組遞歸排序實現(xiàn)方法,結合實例形式分析了php基于遞歸算法針對特定key對數組進行排序的相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP數組遞歸排序實現(xiàn)方法。分享給大家供大家參考,具體如下:

/**
 * 遞歸根據特定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程序設計有所幫助。

相關文章

最新評論

郎溪县| 万安县| 达尔| 马公市| 伊宁市| 潞西市| 龙川县| 德庆县| 崇仁县| 高雄县| 安龙县| 新田县| 三穗县| 荣成市| 阿巴嘎旗| 静安区| 镇康县| 镇远县| 新巴尔虎左旗| 民乐县| 滦南县| 汶川县| 安岳县| 镇坪县| 天台县| 四平市| 原阳县| 郎溪县| 怀集县| 五寨县| 巴马| 济阳县| 林甸县| 芜湖市| 化德县| 都安| 泽普县| 九龙城区| 余姚市| 油尖旺区| 武威市|