濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例

PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例

熱門標(biāo)簽:南寧高頻外呼回?fù)芟到y(tǒng)哪家好 400電話申請(qǐng)方法收費(fèi) 400電話辦理福州市 長(zhǎng)沙crm外呼系統(tǒng)業(yè)務(wù) 專業(yè)電話機(jī)器人批發(fā)商 電話機(jī)器人危險(xiǎn)嗎 江蘇外呼電銷機(jī)器人報(bào)價(jià) 深圳外呼系統(tǒng)收費(fèi) 離石地圖標(biāo)注

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

/**
 * 遞歸根據(jù)特定key對(duì)數(shù)組排序
 * @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自定義二維數(shù)組排序函數(shù)array_orderby用法》中有詳細(xì)介紹

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:

在線動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • php求斐波那契數(shù)的兩種實(shí)現(xiàn)方式【遞歸與遞推】
  • php菜單/評(píng)論數(shù)據(jù)遞歸分級(jí)算法的實(shí)現(xiàn)方法
  • PHP實(shí)現(xiàn)無(wú)限極分類的兩種方式示例【遞歸和引用方式】
  • PHP利用遞歸函數(shù)實(shí)現(xiàn)無(wú)限級(jí)分類的方法
  • PHP自定義遞歸函數(shù)實(shí)現(xiàn)數(shù)組轉(zhuǎn)JSON功能【支持GBK編碼】
  • PHP遞歸寫(xiě)入MySQL實(shí)現(xiàn)無(wú)限級(jí)分類數(shù)據(jù)操作示例
  • PHP迭代與遞歸實(shí)現(xiàn)無(wú)限級(jí)分類
  • PHP實(shí)現(xiàn)遞歸的三種方法

標(biāo)簽:白酒營(yíng)銷 興安盟 株洲 南昌 南京 濱州 曲靖 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例》,本文關(guān)鍵詞  PHP,數(shù)組,遞歸,排序,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    盐亭县| 虹口区| 宜昌市| 德阳市| 大关县| 绥德县| 准格尔旗| 伊川县| 连城县| 怀柔区| 崇州市| 东明县| 探索| 嘉禾县| 中宁县| 太湖县| 博白县| 东阳市| 湘阴县| 雅安市| 灵山县| 西贡区| 武义县| 大同市| 正宁县| 富蕴县| 谢通门县| 西乌珠穆沁旗| 咸丰县| 绥江县| 枝江市| 五莲县| 台前县| 汉川市| 和政县| 林甸县| 普格县| 通州市| 文昌市| 南涧| 开鲁县|