无限级分类的非递归算法

/*
无限级分类的非递归算法
$item 数组
事例数据
array (size=75)
  0 => 
    array (size=4)
      'id' => int 1
      'name' => string '* [1 业务aa协议]' (length=20)
      'pid' => int 0
      'caseID' => null
  1 => 
    array (size=4)
      'id' => int 2
      'name' => string '* [1.1 协议格式]' (length=20)
      'pid' => int 1
      'caseID' => null
  2 => 
    array (size=4)
      'id' => int 3
      'name' => string '* [1.1.1 协议说明]' (length=22)
      'pid' => int 2
      'caseID' => null
  3 => 
    array (size=4)
      'id' => int 4
      'name' => string '* [1.1.2 输入参数]' (length=22)
      'pid' => int 2
      'caseID' => null
.........
数组的主键值是与ID有关系的
*/
function generateTree($items){
    $tree = array();
	var_dump($items);
	foreach($items as $item){
		if(isset($items[$item['pid']-1]))
			$items[$item['pid']]['son'][] = &$items[$item['id']];
		else
			$tree[] = &$items[$item['id']];
	}
	return $tree;
}

    原文作者:递归算法
    原文地址: https://blog.csdn.net/yxwb1253587469/article/details/51832347
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞