无限极分类的方法

本文主要说明了实现无限极分类的两种方法:

一种是传统的递归方法:

代码如下:

/**
 * 如何取数据格式化的树形数据
 */
$tree = generateTree($items);
function getTreeData($tree){
    foreach($tree as $t){
        echo $t['name'].'
';

        if(isset($t['son'])){
            getTreeData($t['son']);
        }
    }
}
getTreeData($tree);

第二种方法是用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;
}

也可进一步精简如下:

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();
}


你可能感兴趣的:(php)