2013-01-14 54 views
-3

如何将正确的ul和li标签添加到以下数组中?请记住,一些机会和活动将没有价值...我认为这将需要如果陈述,但不知道是否有推动或添加每个阵列所需的ul和li标签:ul和li与php阵列

<?php 
include('common_functions.php'); 
include('config.php'); 

?> 

<?php 
$data = array(); 
$index = array(); 
$query = mysql_query("SELECT Opportunity_ID AS id, Parent_ID AS parent_id, Subject AS name FROM Opportunities ORDER BY name"); 
while ($row = mysql_fetch_assoc($query)) { 
    $id = $row["id"]; 
    $parent_id = $row["parent_id"] === NULL ? "NULL" : $row["parent_id"]; 
    $data[$id] = $row; 
    $index[$parent_id][] = $id; 
} 
foreach($data as $id) 
{ 
$in_clause .= "'".$id["id"]."',"; } 
$in_clause = trim($in_clause, ","); 

$activities = array(); 
$act_query = mysql_query("SELECT Details, Opportunity_ID FROM Activities WHERE Opportunity_ID IN ($in_clause)"); 
while ($act_row = mysql_fetch_assoc($act_query)) { 
    $activities[] = $act_row; 
} 


function display_child_nodes($parent_id) 
{ 
    global $data, $index, $activities; 
    $parent_id = $parent_id === NULL ? "0" : $parent_id; 
    if (isset($index[$parent_id])) 
    { 
     foreach ($index[$parent_id] as $id) 
     { 
      echo $data[$id]["name"]; 
      foreach ($activities as $activity) 
      { 
      if ($activity['Opportunity_ID'] == $id) 
      { 
      echo $activity['Details']; 
      } 
      } 
      display_child_nodes($id); 
     }  
    }  
} 

display_child_nodes(NULL, 0); 

?> 
+2

四溢定义“正确”。 – deceze

回答

1

你的代码很难跟随,“正确”有点含糊,因为有很多不同的方法可以做到这一点。

在说 - 你可以只是implode它。 Implode是一种用胶水拼接阵列的非常简单和整洁的方法。

以二维数组:

$array[0]= array("one", "two", "three"); 
$array[1]= array("four", "five", "six"); 

,并遍历它

$output = ""; 


foreach($array as $item){ 
    $output .= "<ul><li>".implode("</li><li>",$item)."</li><\ul>"; 
} 

echo $output; 

看一看在php.net网站的例子,它与伟大的想法:)

+0

PS,键入我的头:)确保测试代码,而不是复制并粘贴它作为福音。 –