程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP如何通過傳引用的思想實現無限分類(代碼簡單)

PHP如何通過傳引用的思想實現無限分類(代碼簡單)

編輯:PHP綜合

無限級分類,主要是通過儲存上級分類的id以及分類路徑來實現

在我的Simpla中,用到了無限分類,使用了PHP的傳引用思想實現無限分類的方法,可以完美展示類似這樣的分類模式。

id   pid   name
1    0     四川
2    0     重慶
3    1     成都
4    1     綿陽
5    3     高新區

代碼如下所示:

/**
  * 數組變成無限級分類--傳引用思想
  * @param array $items
  * @return array
  */
 public static function get_tree($orig) {
  //解決下標不是1開始的問題
  $items = array();
  foreach ($orig as $key => $value) {
   $items[$value[‘id‘]] = $value;
  }
  //開始組裝
  $tree = array();
  foreach ($items as $key => $item) {
   if ($item[‘pid‘] == 0) { //為0,則為1級分類
    $tree[] = &$items[$key];
   } else {
    if (isset($items[$item[‘pid‘]])) { //存在值則為二級分類
     $items[$item[‘pid‘]][‘child‘][] = &$items[$key]; //傳引用直接賦值與改變
    } else { //至少三級分類
     //由於是傳引用思想,這裡將不會有值
     $tree[] = &$items[$key];
    }
   }
  }
  return $tree;
 }

以上內容很簡單吧,如有錯誤或者更好的方法,希望可以相互交流。謝謝。!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved