国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php無限級分類(帶層深)算法

2024-05-04 21:48:34
字體:
來源:轉載
供稿:網友

一個利用數組來實現無限級分類php類程序,有需要的朋友可參考,這里就不多說什么了直接復制上代碼.

php無限級分類(帶層深)算法實例代碼如下:

  1. <?php 
  2. $cates = array
  3.  array
  4.   'cid'   => 1, 
  5.   'cname' => '新聞'
  6.   'pid'   => 0 
  7.  ), 
  8.  
  9.  array
  10.   'cid'   => 2, 
  11.   'cname' => '通知'
  12.   'pid'   => 0 
  13.  ), 
  14.  
  15.  array
  16.   'cid'   => 3, 
  17.   'cname' => '國內新聞'
  18.   'pid'   => 1 
  19.  ), 
  20.  
  21.  array
  22.   'cid'   => 4, 
  23.   'cname' => '國際新聞'
  24.   'pid'   => 1 
  25.  ), 
  26.  
  27.  array
  28.   'cid'   => 5, 
  29.   'cname' => '北京新聞'
  30.   'pid'   => 3 
  31.  ), 
  32.  
  33.  array
  34.   'cid'   => 6, 
  35.   'cname' => '上海新聞'
  36.   'pid'   => 3 
  37.  ), 
  38.  
  39.  array
  40.   'cid'   => 7, 
  41.   'cname' => '緊急通知'
  42.   'pid'   => 2 
  43.  ), 
  44.  
  45.  array
  46.   'cid'   => 8, 
  47.   'cname' => '一般通知'
  48.   'pid'   => 2 
  49.  ), 
  50. ); 
  51.  
  52. /** 
  53.  * 生成菜單 
  54.  * 
  55.  * @param array $data 原始數據 
  56.  * @param integer $pid 當前分類的父id 
  57.  * @return array 處理后數據 
  58.  */ 
  59. function createMenuTree($data = array(), $pid = 0) 
  60.  if (emptyempty($data)) 
  61.  { 
  62.   return array(); 
  63.  } 
  64.  
  65.  static $level = 0; 
  66.  
  67.  $returnArray = array(); 
  68.  
  69.  foreach ($data as $node
  70.  { 
  71.   if ($node['pid'] == $pid
  72.   { 
  73.    $returnArray[] = array
  74.     'cid'   => $node['cid'], 
  75.     'cname' => $node['cname'], 
  76.     'level' => $level 
  77.    ); 
  78.  
  79.    if (hasChild($node['cid'], $data)) 
  80.    { 
  81.     $level++; 
  82.  
  83.     $returnArray = array_merge($returnArray, createMenuTree($data$node['cid'])); 
  84.  
  85.     $level--; 
  86.    } 
  87.   } 
  88.  } 
  89.  
  90.  return $returnArray
  91.  
  92. /** 
  93.  * 檢查是否有子分類 
  94.  * 
  95.  * @param integer $cid 當前分類的id 
  96.  * @param array $data 原始數據 
  97.  * @return boolean 是否有子分類 
  98.  */ 
  99. function hasChild($cid$data
  100.  $hasChild = false; 
  101.  
  102.  foreach ($data as $node
  103.  { 
  104.   if ($node['pid'] == $cid
  105.   { 
  106.    $hasChild = true; 
  107.    break
  108.   } 
  109.  } 
  110.  
  111.  return $hasChild
  112.  
  113. header('Content-Type: text/html; charset=utf-8'); 
  114.  
  115. $result = createMenuTree($cates); 
  116. //開源代碼Vevb.com 
  117. foreach ($result as $row
  118.  for ($i = 0; $i < $row['level']; $i++) 
  119.  { 
  120.   echo "t"
  121.  } 
  122.  
  123.  echo $row['cname'] . "n"
  124. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 剑阁县| 顺平县| 富川| 荣成市| 昂仁县| 外汇| 洪泽县| 和田县| 大足县| 临武县| 德惠市| 读书| 鲁甸县| 广西| 武夷山市| 南部县| 阜新| 城口县| 景东| 介休市| 福贡县| 阿拉善右旗| 兖州市| 化德县| 如皋市| 阜新市| 麻城市| 呼伦贝尔市| 富锦市| 育儿| 苏尼特左旗| 和田市| 漳州市| 盐池县| 邢台市| 雅安市| 铅山县| 临漳县| 阿坝县| 泗洪县| 左权县|