<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      php 無限級分類示例代碼

      [摘要]這里首先介紹一下,什么是無限極分類?無限極分類簡單點說就是一個類可以分成多個子類,然后一個子類又可以分另外多個子類這樣無限分下去,就好象windows可以新建一個文件夾,然后在這個文件夾里又可以建一...
      這里首先介紹一下,什么是無限極分類?

      無限極分類簡單點說就是一個類可以分成多個子類,然后一個子類又可以分另外多個子類這樣無限分下去,就好象windows可以新建一個文件夾,然后在這個文件夾里又可以建一些個文件夾,在文件夾底下還可以建一些文件夾一樣

      那php又是如何實現它的無限分類的呢?如何把它的各個分類一一列出來呢?代碼如下

      <?php
      /**
       * 無限級分類 類
       */
      class Category{
       /**
        * 返回一維數組
        * @param [type] $cate 要遞歸的數組
        * @param string $html 子級分類前要顯示的縮進符號。默認 '─'
        * @param integer $pid 父級分類ID。默認為 0,表示頂級分類
        * @param integer $level level級,配合 $html 顯示足夠的縮進。默認為 1,表示頂級分類
        * @return [type]   [description]
        */
       static public function unlimitedForLevel($cate, $html = '─', $pid = 0, $level = 1){
        $arr = array();
        foreach($cate as $v){
         if($v['pid'] == $pid){
          $v['level'] = $level;
          $v['html'] = str_repeat($html, $level - 1);
          $arr[] = $v;
          $arr = array_merge($arr, $this->unlimitedForLevel($cate, $html, $v['id'], $level + 1));
         }
        }
        return $arr;
       }
       /**
        * 返回多維數組
        * @param [type] $cate 要遞歸的數組
        * @param string $name 子級分類在父分類數組中的 key
        * @param integer $pid 父級分類ID。默認為0,表示頂級分類
        * @return [type]  [description]
        */
       static public function unlimitedForlayer($cate, $name = 'child', $pid = 0){
        $arr = array();
        foreach($cate as $v){
         if( $v['pid'] == $pid){
          $v[$name] = self::unlimitedForlayer($cate, $name, $v['id']);
          $arr[] = $v;
         }
        }
        return $arr;
       }
       /**
        * 傳遞子分類ID返回所有父級分類
        * @param [type] $cate 要遞歸的數組
        * @param [type] $id 子分類ID
        * @return [type]  [description]
        */
       static public function getParents($cate, $id){
        $arr = array();
        foreach($cate as $v){
         if($v['id'] == $id){
          $arr[] = $v;
          $arr = array_merge(self::getParents($cate, $v['pid']), $arr);
         }
        }
        return $arr;
       }
       /**
        * 傳遞父級分類ID返回所有子分類ID
        * @param [type] $cate 要遞歸的數組
        * @param [type] $pid 父級分類ID
        * @return [type]  [description]
        */
       static public function getChildrenId($cate, $pid){
        $arr = array();
        foreach($cate as $v){
         if($v['pid'] == $pid){
          $arr[] = $v['id'];
          $arr = array_merge($arr, self::getChildrenId($cate, $v['id']));
         }
        }
        return $arr;
       }
       /**
        * 傳遞父級分類ID返回所有子級分類
        * @param [type] $cate 要遞歸的數組
        * @param [type] $pid 父級分類ID
        * @return [type]  [description]
        */
       static public function getChildren($cate, $pid){
        $arr = array();
        foreach($cate as $v){
         if($v['pid'] == $pid){
          $arr[] = $v;
          $arr = array_merge($arr, self::getChildren($cate, $v['id']));
         }
        }
        return $arr;
       }
      }
      ?>

      以上就是php 無限級分類示例代碼的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清