PHP树级嵌套菜单递归函数

时间:2016-10-12 06:53:54

标签: php html

我正在尝试在树级别显示一组数据

例如,这是我的数据库记录

enter image description here

我希望将其显示为

enter image description here

等等。

当然上面的图片是我自己手动输入的

 <?php 
   require 'tree.php';
   
   $tree = array(
      
	  'wwq' => array(
	  
	        'Project4' => array(
			     'phase1',
				 
				),
	       
	        'Project23' => array(
			     'phase23',
				 
				),
			
			 'Test1' => array(
			     'test1',
				 
				),
	        'Projecttest' => array(
			     'phasetest',
				  'testtest',
				) 
			
			 	
	   ),
	   
	  
	);
	
	echo treeOut($tree);
?>

我的功能是

<?php
function treeOut($row_Recordset1){
	$markup = '';
	foreach ($row_Recordset1 as $branch => $twig){
		$markup .= '<li>' . ((is_array($twig)) ? $branch . treeOut($twig) : $twig). '</li>';

		}
	
	return '<ul>' . $markup . '</ul>';
	
	}
?>

所以,我的问题是如何将数组转换为for循环而不是每个数据中的I键。

感谢是否有人可以帮助我!!如果有任何问题可以在下面评论我。

1 个答案:

答案 0 :(得分:0)

如果是关于如何在将数组传递到treeOut()函数之前以所需格式准备数组,那么在调用treeOut()之前尝试添加这些行:

$tree = array();

$sql = "SELECT * FROM tbl_name ORDER BY companyName ASC, projectName ASC, phaseName ASC";
$result = mysql_query($connection, $sql);

while($data = mysql_fetch_array($result)){
    $tree[ $data['companyName'] ][ $data['projectName'] ][] = $data['phaseName'];
}

echo treeOut($tree);

希望这是你正在寻找的并且会有所帮助。

相关问题