A few lines of code php data formatted into a tree structure

<? PHP 

/ * * 
 * The data is formatted into a tree structure 
 * @author Xuefen.Tong 
 * @param items Array $ 
 * @return Array 
 * / 
function genTree5 ( $ items ) {
     the foreach ( $ items  AS  $ Item ) {
         $ items [ $ Item [ 'PID']] [ 'Son'] [ $ Item [ 'ID']] = & $ items [ $ Item [ 'ID' ]]; 
    } 
    return  isset ( $ items [0] [ 'Son' ?]) $ items [0] [ 'Son']: Array (); 
} 

function genTree9($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;
}

//Test code: 

        $ items = Array (
             . 6 => Array ( 'ID' =>. 6, 'PID' =>. 4, 'name' => 'Xiangfang'), 
            
            . 1 => Array ( 'ID' =>. 1 , 'pid' => 0, 'name' => ' Jiangxi'), 
            2 => Array ( 'ID' => 2, 'pid' => 0, 'name' => ' Heilongjiang'), 
            3 => Array ( 'ID' =>. 3, 'PID' =>. 1, 'name' => 'Nanchang'), 
            . 4 => Array ( 'ID' =>. 4, 'PID' => 2, 'name '=>' Harbin '),
 //             . 5 => Array (' ID '=>5, 'pid' => 2 , 'name' => ' jixi'), 
// 
            . 7 => Array ( 'ID' =>. 7, 'PID' =>. 4, 'name' => 'Nangang' ),
 //            8 => array ( 'id' => 8, 'pid' => 6, 'name' => ' and Rd'), 
//. 9 => Array ( 'ID' =>. 9, 'PID' => 7, 'name' => 'West Da Zhi'), 
// 10 => Array ( 'the above mentioned id' => 10, 'pid' => 8, 'name' => 'Northeast Forestry University'), 
// 11 => array ( 'id' => 11, 'pid' => 9, 'name' => ' Harbin Institute of Technology'), 
// 12 is => Array ( 'ID' => 12 is, 'PID' => 8, 'name' => 'Harbin Normal'), 
// 13 is => Array ( 'ID' => 13 is, 'PID' =>. 1, 'name' => 'Ganzhou'), 
// 14 = > array ( 'id' => 14, 'pid' => 13, 'name' => ' Gan County'), 
// 15 => Array ( 'ID' => 15, 'PID' => 13 is, 'name' => 'Yudu'), 
// 16 => Array ( 'ID' => 16, ' pid '=> 14,' name '=>' Mao Zhen '),  
//. 17 => Array (' ID '=>. 17,' pid '=> 14,' name '=>' large Tin '),
// 18 is => Array (' ID '=> 18 is,' '16, =>' name '=>' sense Yuancun pid ') ,
//            19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),
        );

        echo "<pre>";

        print_r(genTree5($items));

 

Guess you like

Origin www.cnblogs.com/mitang/p/12387344.html