中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何在PHP中實現(xiàn)一個無限級分類-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關如何在PHP中實現(xiàn)一個無限級分類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)公司服務項目包括呼和浩特網站建設、呼和浩特網站制作、呼和浩特網頁制作以及呼和浩特網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,呼和浩特網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到呼和浩特省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

不用遞歸實現(xiàn)無限級分類,簡單測試了下性能比遞歸稍好一點點點,但寫得太復雜了,還是遞歸簡單方便點

如何在PHP中實現(xiàn)一個無限級分類

代碼:

<?php
$list = array(
  array('id'=>1, 'pid'=>0, 'deep'=>0, 'name'=>'test1'),
  array('id'=>2, 'pid'=>1, 'deep'=>1, 'name'=>'test2'),
  array('id'=>3, 'pid'=>0, 'deep'=>0, 'name'=>'test3'),
  array('id'=>4, 'pid'=>2, 'deep'=>2, 'name'=>'test4'),
  array('id'=>5, 'pid'=>2, 'deep'=>2, 'name'=>'test5'),
  array('id'=>6, 'pid'=>0, 'deep'=>0, 'name'=>'test6'),
  array('id'=>7, 'pid'=>2, 'deep'=>2, 'name'=>'test7'),
  array('id'=>8, 'pid'=>5, 'deep'=>3, 'name'=>'test8'),
  array('id'=>9, 'pid'=>3, 'deep'=>2, 'name'=>'test9'),
);
function resolve($list) {
  $newList = $manages = $deeps = $inDeeps = array();
  foreach ($list as $row) {
    $newList[$row['id']] = $row;
  }
  $list = null;
  foreach ($newList as $row) {
    if (! isset($manages[$row['pid']]) || ! isset($manages[$row['pid']]['children'][$row['id']])) {
      if ($row['pid'] > 0 && ! isset($manages[$row['pid']]['children'])) $manages[$row['pid']] = $newList[$row['pid']];
      $manages[$row['pid']]['children'][$row['id']] = $row;
    }
    if (! isset($inDeeps[$row['deep']]) || ! in_array($row['id'], $inDeeps[$row['deep']])) {
      $inDeeps[$row['deep']][] = array($row['pid'], $row['id']);
    }
  }
  krsort($inDeeps);
  array_shift($inDeeps);
  foreach ($inDeeps as $deep => $ids) {
    foreach ($ids as $m) {
      // 存在子欄目的進行轉移
      if (isset($manages[$m[1]])) {
        $manages[$m[0]]['children'][$m[1]] = $manages[$m[1]];
        $manages[$m[1]] = null;
        unset($manages[$m[1]]);
      }
    }
  }
  return $manages[0]['children'];
}

遞歸實現(xiàn)

function resolve2(& $list, $pid = 0) {
  $manages = array();
  foreach ($list as $row) {
    if ($row['pid'] == $pid) {
      $manages[$row['id']] = $row;
      $children = resolve2($list, $row['id']);
      $children && $manages[$row['id']]['children'] = $children;
    }
  }
  return $manages;
}

看完上述內容,你們對如何在PHP中實現(xiàn)一個無限級分類有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

本文題目:如何在PHP中實現(xiàn)一個無限級分類-創(chuàng)新互聯(lián)
當前網址:http://m.rwnh.cn/article30/cegopo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站營銷、動態(tài)網站、網站收錄、云服務器關鍵詞優(yōu)化、虛擬主機

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
安塞县| 如皋市| 西畴县| 阿巴嘎旗| 通河县| 义马市| 秦皇岛市| 万安县| 象山县| 治县。| 鹿邑县| 丰原市| 司法| 井冈山市| 崇阳县| 山东| 临泽县| 南通市| 隆回县| 那坡县| 湘潭县| 自贡市| 宁陵县| 衡阳县| 吐鲁番市| 达拉特旗| 岳西县| 蚌埠市| 唐海县| 威海市| 普陀区| 汉阴县| 昌都县| 开鲁县| 登封市| 梨树县| 广汉市| 石河子市| 杭锦旗| 景泰县| 昆山市|