中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产α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://www.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ā)
丰城市| 松阳县| 陆河县| 云霄县| 资源县| 荔浦县| 潜山县| 修水县| 临江市| 定安县| 旺苍县| 浠水县| 鄯善县| 东乌珠穆沁旗| 衡水市| 寿宁县| 堆龙德庆县| 怀化市| 景德镇市| 日喀则市| 弥勒县| 嘉义市| 高平市| 泊头市| 颍上县| 康马县| 岱山县| 和政县| 泾阳县| 肥乡县| 拜泉县| 电白县| 碌曲县| 东乌珠穆沁旗| 雅安市| 沅陵县| 玉溪市| 泰兴市| 徐州市| 壤塘县| 祁门县|