婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP數組遞歸排序實現方法示例

PHP數組遞歸排序實現方法示例

熱門標簽:南寧高頻外呼回撥系統哪家好 400電話申請方法收費 400電話辦理福州市 長沙crm外呼系統業務 專業電話機器人批發商 電話機器人危險嗎 江蘇外呼電銷機器人報價 深圳外呼系統收費 離石地圖標注

本文實例講述了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數組遞歸排序實現方法示例》,本文關鍵詞  PHP,數組,遞歸,排序,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP數組遞歸排序實現方法示例》相關的同類信息!
  • 本頁收集關于PHP數組遞歸排序實現方法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 蒲江县| 津南区| 临朐县| 隆林| 黄大仙区| 贡觉县| 汕头市| 阜城县| 宜兰县| 岳阳县| 东乡县| 阳泉市| 水富县| 杭锦后旗| 凤冈县| 白沙| 台北市| 新巴尔虎右旗| 根河市| 通州区| 新乡县| 东乌珠穆沁旗| 伊川县| 会理县| 隆尧县| 临泉县| 沙洋县| 丹江口市| 北海市| 长寿区| 嵊州市| 肥西县| 东光县| 留坝县| 双流县| 繁峙县| 阳江市| 桐城市| 嘉祥县| 德江县| 长治市|