欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP超牛逼無限極分類生成樹方法

 更新時間:2015年05月11日 10:13:01   投稿:junjie  
這篇文章主要介紹了PHP超牛逼無限極分類生成樹方法,本文巧用PHP中的引用實現(xiàn)樹的生成方法,比遞歸方法高端多了,需要的朋友可以參考下

你還在用浪費時間又浪費內存的遞歸遍歷無限極分類嗎,看了該篇文章,我覺得你應該換換了。

這是我在OSChina上看到的一段非常精簡的PHP無限極分類生成樹方法,巧在引用,整理分享了。

復制代碼 代碼如下:

function generateTree($items){
    $tree = array();
    foreach($items as $item){
        if(isset($items[$item['pid']])){
            $items[$item['pid']]['son'][] = &$items[$item['id']];
        }else{
            $tree[] = &$items[$item['id']];
        }
    }
    return $tree;
}
$items = array(
    1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
    2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
    3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
    4 => array('id' => 4, 'pid' => 3, 'name' => '長豐縣'),
    5 => array('id' => 5, 'pid' => 1, 'name' => '安慶市'),
);
print_r(generateTree($items));

可以看到下面打印的結果:

復制代碼 代碼如下:

Array
(
    [0] => Array
        (
            [id] => 1
            [pid] => 0
            [name] => 安徽省
            [son] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [pid] => 1
                            [name] => 合肥市
                            [son] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 4
                                            [pid] => 3
                                            [name] => 長豐縣
                                        )
 
                                )
 
                        )
 
                    [1] => Array
                        (
                            [id] => 5
                            [pid] => 1
                            [name] => 安慶市
                        )
 
                )
 
        )
 
    [1] => Array
        (
            [id] => 2
            [pid] => 0
            [name] => 浙江省
        )
 
)

上面生成樹方法還可以精簡到5行:
復制代碼 代碼如下:

function generateTree($items){
    foreach($items as $item)
        $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
    return isset($items[0]['son']) ? $items[0]['son'] : array();
}

上面這種無限極分類數(shù)據(jù)樹形結構化的方法值得借鑒。但是我覺得這段代碼實際用途并不明顯啊,你想取出格式化的樹形數(shù)據(jù)還是要遞歸?。?/p>

復制代碼 代碼如下:

/**
 * 如何取數(shù)據(jù)格式化的樹形數(shù)據(jù)
 */
$tree = generateTree($items);
function getTreeData($tree){
    foreach($tree as $t){
        echo $t['name'].'<br>';
        if(isset($t['son'])){
            getTreeData($t['son']);
        }
    }
}
getTreeData($tree);

相關文章

  • PHP截斷標題且兼容utf8和gb2312編碼

    PHP截斷標題且兼容utf8和gb2312編碼

    PHP截斷標題的方法有很多,但同時可以兼容utf8和gb2312卻不多了,下面有個不錯的方法,可以參考下,或許對大家有所幫助
    2013-09-09
  • php?redis的scan用法實例分析

    php?redis的scan用法實例分析

    在本篇文章了小編給大家整理了一篇關于php?redis的scan用法實例分析內容,有興趣的朋友們可以跟著學習下。
    2021-12-12
  • php工具型代碼之印章?lián)笀D

    php工具型代碼之印章?lián)笀D

    這篇文章主要為大家詳細介紹了php工具型代碼之印章?lián)笀D,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析

    PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析

    這篇文章的內容是PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析,需要的朋友可以參考下
    2015-10-10
  • php 抽象類的簡單應用

    php 抽象類的簡單應用

    我想博客中的 文章列表和單個的文章閱讀 統(tǒng)一起來,我覺得除了sql查詢語句結構不同,HTML代碼不同,其它也就一樣。不過話說回來,這兩個都是主要功能,所以這的確有點不適合,不過昨晚讀了一點設計模式,好歹得寫點啥好。
    2011-09-09
  • php smtp實現(xiàn)發(fā)送郵件功能

    php smtp實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了php smtp實現(xiàn)發(fā)送郵件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • php讀取javascript設置的cookies的代碼

    php讀取javascript設置的cookies的代碼

    最主要的就是給cookies設置一個名字,在javascript設置cookies的時候不要用無參數(shù)函數(shù),那樣用的話php沒辦法讀取
    2010-04-04
  • php常用字符串輸出方法分析(echo,print,printf及sprintf)

    php常用字符串輸出方法分析(echo,print,printf及sprintf)

    這篇文章主要介紹了php常用字符串輸出方法,結合實例形式分析了echo、print、printf及sprintf輸出字符串的具體用法與相關使用技巧,需要的朋友可以參考下
    2016-07-07
  • PHP檢測接口Traversable用法詳解

    PHP檢測接口Traversable用法詳解

    這篇文章主要介紹了PHP檢測接口Traversable用法,結合實例形式分析了Traversable接口檢測遍歷功能的相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • PHP實現(xiàn)將標點符號正則替換為空格的方法

    PHP實現(xiàn)將標點符號正則替換為空格的方法

    這篇文章主要介紹了PHP實現(xiàn)將標點符號正則替換為空格的方法,結合實例形式分析了php針對符號的正則匹配相關操作技巧,需要的朋友可以參考下
    2017-08-08

最新評論