<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 無限極分類 [TOC] 遞歸是程序調用自身的編程技巧。 * 使用靜態變量存儲遞歸 ``` function deeploop() { static $i = 1; echo $i; $i++; if ($i <= 10) { deeploop(); } } deeploop(); ``` * 使用 值引用 的形式 ``` function deeploop2(&$i = 1) { echo $i; $i++; if ($i <= 10) { deeploop2($i); } } deeploop2(); ``` * 使用 global 全局變量的形式 ``` $i = 1; function deeploop3() { global $i; echo $i; $i++; if ($i <= 10) { deeploop3(); } } deeploop3(); ``` ## 遞歸無限極分類原理 每一個分類都需要記錄它的父級id,當為頂級分類時,父級id為0。這樣無論哪個分類,都可以通過父級id一層層的去查明它所有的父級,以便清楚知道它所屬何種分類,層級深度為多少。 * 表和數據準備 ``` CREATE TABLE categories ( `id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, `parent_id` TINYINT UNSIGNED NOT NULL COMMENT '上級分類', `cat_name` VARCHAR(12) NOT NULL DEFAULT '' COMMENT '欄目名稱', `order` TINYINT NOT NULL DEFAULT 100 COMMENT '排序', `created_at` INT UNSIGNED NOT NULL COMMENT '創建時間', PRIMARY KEY (id) )ENGINE=InnoDB CHARSET "utf8" COMMENT '欄目分類表'; INSERT INTO categories VALUES (1,0,'新聞',1,unix_timestamp(now())),(2,0,'圖片',2,unix_timestamp(now())),(3,1,'國內新聞',1,unix_timestamp(now())),(4,1,'國際新聞',2,unix_timestamp(now())),(5,3,'北京新聞',1,unix_timestamp(now())),(6,4,'美國新聞',2,unix_timestamp(now())),(7,2,'美女圖片',1,unix_timestamp(now())),(8,2,'風景圖片',2,unix_timestamp(now())),(9,7,'日韓明星',1,unix_timestamp(now())),(10,9,'日本AV',1,unix_timestamp(now())); ``` ![](https://box.kancloud.cn/f480f87629fc702099ed8c69ddee1847_323x227.png) ## 無限極分類實現 ``` /** * 無限極分類樹 getTree($categories) * @param array $data * @param int $parent_id * @param int $level * @return array */ function getTree($data = [], $parent_id = 0, $level = 0) { $tree = []; if ($data && is_array($data)) { foreach ($data as $v) { if ($v['parent_id'] == $parent_id) { $tree[] = [ 'id' => $v['id'], 'level' => $level, 'cat_name' => $v['cat_name'], 'parent_id' => $v['parent_id'], 'children' => getTree($data, $v['id'], $level + 1), ]; } } } return $tree; } /** * 循環獲取子孫樹 getSubTree($categories) * * @param array $data * @param int $id * @param int $level * @return array */ function getSubTree($data = [], $id = 0, $level = 0) { static $tree = []; foreach ($data as $key => $value) { if ($value['parent_id'] == $id) { $value['laravel'] = $level; $tree[] = $value; getSubTree($data, $value['id'], $level + 1); } } return $tree; } /** * 遞歸獲取子孫樹 getSubTree2($categories, 1) * * @param array $data * @param int $parent_id * @param int $level * @return array */ function getSubTree2($data = [], $parent_id = 0, $level = 0) { $tree = []; if ($data && is_array($data)) { foreach ($data as $key => $value) { if ($value['parent_id'] == $parent_id) { $value['laravel'] = $level; $tree[] = $value; $tree = array_merge($tree, getSubTree2($data, $value['id'], $level + 1)); } } } return $tree; } ``` ``` /** * 通過pid獲取所有上級分類 常用于面包屑導航 getParentsByParentId2($categories, 9) * * * @param array $data * @param $parent_id * @return array */ function getParentsByParentId($data = [], $parent_id) { static $categories = []; if ($data && is_array($data)) { foreach ($data as $item) { if ($item['id'] == $parent_id) { $categories[] = $item; getParentsByParentId($data, $item['parent_id']); } } } return $categories; } function getParentsByParentId2($data = [], $parent_id) { $categories = []; if ($data && is_array($data)) { foreach ($data as $item) { if ($item['id'] == $parent_id) { $categories[] = $item; $categories = array_merge($categories, getParentsByParentId2($data, $item['parent_id'])); } } } return $categories; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看