php 使用&引用 巧妙實現層級樹

<?php

$a = array(

    array('node_id'=>1,'pid'=>0),

    array('node_id'=>2,'pid'=>1),

    array('node_id'=>3,'pid'=>1),

    array('node_id'=>4,'pid'=>2),

    array('node_id'=>5,'pid'=>3),

    array('node_id'=>6,'pid'=>5),

    array('node_id'=>7,'pid'=>8),

    array('node_id'=>8,'pid'=>9),

    array('node_id'=>9,'pid'=>0),

);

$tmp = array();

foreach($a as $k=>$v){

    $tmp[$v['node_id']] = &$a[$k];

}

$tree = array();

foreach($a as $k=>$v){

    if(!empty($v['pid'])){

        if(!$tmp[$v['pid']]) continue;

        $t = &$tmp[$v['pid']];

        $t['childrens'][] = &$a[$k];

    }else{

        $tree[] = &$a[$k];

    }

}

print_r($tree);exit;

輸出結果:


發佈了17 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章