php遞歸無限分類文檔介紹內容(PHP遞歸)

本文目錄一覽:

php無限極分類實現的方法?

初始化的數據

//初始化原始數據(id=編號,name=顯示名稱,pid=父級目錄id,sort=排序順序)$data[1] = array(‘id’=’1′,’name’=’一級目錄A’,’pid’=’0′,’sort’=’1′);

$data[2] = array(‘id’=’2′,’name’=’一級目錄B’,’pid’=’0′,’sort’=’2′);

$data[3] = array(‘id’=’3′,’name’=’一級目錄C’,’pid’=’0′,’sort’=’3′);

$data[4] = array(‘id’=’4′,’name’=’一級目錄D’,’pid’=’0′,’sort’=’4′);

$data[5] = array(‘id’=’5′,’name’=’二級目錄A-1′,’pid’=’1′,’sort’=’1’);

$data[6] = array(‘id’=’6′,’name’=’二級目錄A-2′,’pid’=’1′,’sort’=’2’);

$data[7] = array(‘id’=’7′,’name’=’二級目錄A-3′,’pid’=’1′,’sort’=’3’);

$data[8] = array(‘id’=’8′,’name’=’二級目錄B-1′,’pid’=’2′,’sort’=’1’);

$data[9] = array(‘id’=’9′,’name’=’二級目錄B-2′,’pid’=’2′,’sort’=’2’);

$data[10] = array(‘id’=’10’,’name’=’二級目錄B-3′,’pid’=’2′,’sort’=’3′);

$data[11] = array(‘id’=’11’,’name’=’二級目錄C-1′,’pid’=’3′,’sort’=’2′);

$data[12] = array(‘id’=’12’,’name’=’二級目錄D-1′,’pid’=’4′,’sort’=’1′);

$data[13] = array(‘id’=’13’,’name’=’二級目錄D-2′,’pid’=’4′,’sort’=’2′);

$data[14] = array(‘id’=’14’,’name’=’三級目錄A-2-1′,’pid’=’6′,’sort’=’1′);

$data[15] = array(‘id’=’15’,’name’=’三級目錄A-2-2′,’pid’=’6′,’sort’=’2′);

$data[16] = array(‘id’=’16’,’name’=’三級目錄C-1-1′,’pid’=’11’,’sort’=’1′);

$data[17] = array(‘id’=’17’,’name’=’三級目錄B-2-1′,’pid’=’9′,’sort’=’2′);

顯示樹結構

function printTree($data,$level=0){    foreach($data as $key=$value){        for($i=0;$i=$level;$i++){            echo ’emsp;emsp;’;

        }        echo $value[‘name’];        echo ‘br’;        if(!empty($value[‘children’])){

            printTree($value[‘children’],$level+1);

        }

    }

}

使用遞歸的方式獲取無限極分類數組

function getNodeTree($list,$tree,$pid=0){    foreach($list as $key=$value){        if($pid == $value[‘pid’]){

            $tree[$value[‘id’]]=$value;            unset($list[$key]);

            getNodeTree($list,$tree[$value[‘id’]][‘children’],$value[‘id’]);

        }

    }

}

使用引用-無限極分類

function createNodeTree($list,$tree){    foreach($list as $key=$node){        if(isset($list[$node[‘pid’]])){

            $list[$node[‘pid’]][‘children’][] = $list[$key];

        }else{

            $tree[] = $list[$node[‘id’]];

        }

    }

}

調用

//遞歸-無限極分類調用getNodeTree($data,$tree);

printTree($tree);//使用引用-無限極分類調用createNodeTree($data,$tree);

printTree($tree);

php 幾種常用的遞歸 無限極分類

 /**

     * 遞歸實現無限極分類

     * @param $array 分類數據

     * @param $pid 父ID

     * @param $level 分類級別

     * @return $list 分好類的數組 直接遍歷即可 $level可以用來遍歷縮進

     */

    function getTree($array, $pid =0, $level = 0){

        //聲明靜態數組,避免遞歸調用時,多次聲明導致數組覆蓋

        static $list = [];        foreach ($array as $key = $value){            //第一次遍歷,找到父節點為根節點的節點 也就是pid=0的節點

            if ($value[‘pid’] == $pid){                //父節點為根節點的節點,級別為0,也就是第一級

                $value[‘level’] = $level;                //把數組放到list中

                $list[] = $value;                //把這個節點從數組中移除,減少後續遞歸消耗

                unset($array[$key]);                //開始遞歸,查找父ID為該節點ID的節點,級別則為原級別+1

                getTree($array, $value[‘id’], $level+1);

            }

        }

php遞歸無限極分類怎麼弄

給個函數你,調用get_category()就是一個數組格式的結果

function get_category($parent_id=0){

$arr=array();

$sql = “select * from category where parent_id=$parent_id”;//查詢子級數據

$result = array(a_object,b_object,,,)=sql_query($sql);//查詢結果一個數組或列表格式,自己完善。

if($result){

foreach($result as $re){//循環數組

if(get_category($re.id))//如果子級不為空

$re[‘child’] = get_category($re.id);

$arr[] = $re;

}

return $arr;

}

原創文章,作者:YK999,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129797.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
YK999的頭像YK999
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python七年級內容用法介紹

    本文將從多個方面對Python七年級內容進行詳細闡述。 一、安裝Python 要使用Python進行編程,首先需要在計算機上安裝Python。Python可以在官網上免費下載。下載…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 台階走法遞歸

    台階走法遞歸是一個經典的遞歸問題,在計算機演算法中有著廣泛的應用。本篇文章將從遞歸的思想出發,詳細分析如何解決這個問題。 一、遞歸基礎知識 遞歸是指一個函數直接或間接地調用自身。遞歸…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • Python遞歸累加求和

    Python遞歸累加求和是一種常見的遞歸演算法,在解決一些數學問題或者邏輯問題時常常被使用。下面我們將從多個方面來詳細闡述這個演算法。 一、基本概念 遞歸是一種在函數中調用自身的演算法,…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28

發表回復

登錄後才能評論