<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                > 在開發中經常需要用到樹形數據,比如無限多級分類,就是典型的樹形結構。 ``` //原始數據, 從數據庫讀出 $data = array( array( 'id'=>1, 'name'=>'book', 'parent_id'=>0 ), array( 'id'=>2, 'name'=>'music', 'parent_id'=>0 ), array( 'id'=>3, 'name'=>'book1', 'parent_id'=>1 ), array( 'id'=>4, 'name'=>'book2', 'parent_id'=>3 ) ); $r = common_Tree::makeTree($data); echo json_encode($r); ``` 輸出: ``` ?[ ????????{ ????????????"id":?1, ????????????"name":?"book", ????????????"parent_id":?0, ????????????"expanded":?false,?//不展開子節點 ????????????"children":?[ ????????????????{ ????????????????????"id":?3, ????????????????????"name":?"book1", ????????????????????"parent_id":?1, ????????????????????"expanded":?false, ????????????????????"children":?[ ????????????????????????{ ????????????????????????????"id":?4, ????????????????????????????"name":?"book2", ????????????????????????????"parent_id":?3, ????????????????????????????"leaf":?true ????????????????????????} ????????????????????] ????????????????} ????????????] ????????}, ????????{ ????????????"id":?2, ????????????"name":?"music", ????????????"parent_id":?0, ????????????"leaf":?true ????????} ] ``` 如果不需要使用前端框架,只是用HTML輸出,可以使用下面的方法: ~~~ $r?=?common_Tree::makeTreeForHtml($data); ~~~ 得到一個一維數組,用 level 字段來標識分類的層次: ``` array( ????array( ????????'id'=>1, ????????'name'=>'用戶管理', ????????'parent_id'=>0, ????????'level'=>0?//一級分類 ????), ????array( ????????'id'=>1, ????????'name'=>'用戶列表', ????????'parent_id'=>1, ????????'level'=>1?//二級分類 ????) ????.... ); ``` 輸出為select標簽: ``` echo?'<h1>PHPTree樹形結構</h1>'; echo?'<select??style="width:300px;">'; foreach($r?as?$item){ echo?'<option>'; //根據所在的層次縮進 echo?str_repeat('......',$item['level']); echo?$item['name']; echo?'</option>'; } echo?'</select>'; ``` 演示 ![](https://box.kancloud.cn/d3b68f2062fab9154a8e1f198f7333fa_349x208.png) > 關于數據庫的設計,只需要保證包含 id 和 parent_id 字段即可,其他字段可以自行添加,不會影響數據生成。parent_id是父級ID,如果是一級分類,就設為 0 。當然,字段也是可以配置的。 > > 請繼續往下看,我將介紹一些進階的使用方法。 展開子節點: ~~~ common_Tree::makeTree(?$data,?array( ????'expanded'?=>?true )); ~~~ 輸出的數據為: ~~~ [ ????????{ ????????????id:1, ????????????name:'book1', ????????????expanded:true,//展開子節點 ????????????children:[ ????????????????... ????????????] ????????} ] ~~~ 自定義主鍵和父鍵: ~~~ //數據庫讀出 $data?=?array( ????array( ????????'order_id'=>1,?//主鍵 ????????'name'=>'book1', ????????'pid'=>0,?//父鍵 ????????... ????) ); common_Tree::makeTree(?$data,?array( ????'primary_key'?=>?'order_id', ????'parent_key'??=>?'pid' )); ~~~ 輸出的數據為: ~~~ [ ????????{ ????????????order_id:1, ????????????name:'book1', ????????????pid:0, ????????????... ????????} ] ~~~ makeTreeForHtml 方法也支持配置主鍵和父鍵。 還有其他字段也可以自定義,但下面這些參數僅支持 makeTree 方法: ~~~ $r?=?common_Tree::makeTree($data,?array( ????'expanded_key'?=>?'expanded', ????'children_key'?=>?'children', ????'leaf_key'?????=>?'leaf' )); ~~~
                  <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>

                              哎呀哎呀视频在线观看