PHP-多维数组不会循环槽阵列

问题描述:

我在实习,我正在开发一个具有里程碑和里程碑部分的HTML表格(在这个项目中我们称之为milestonefase)。每个里程碑都有一堆里程碑事件。PHP-多维数组不会循环槽阵列

举例: Milestone99有milestonefase 10,milestonefase14。

这些数据来自两个不同的数据库表。 我的数组是这样的:

Array 
(
    [milestonesfases] => Array 
     (
      [10] => Array 
       (
        [milestonefase_id] => int 
        [milestonefase_titel] => string 
        [milestonefase_milestone_id] => int 
       ) 
      [14] => Array 
       (
        [milestonefase_id] => int 
        [milestonefase_titel] => string 
        [milestonefase_milestone_id] => int 
       ) 
     ) 

    [milestone_id] => int 
    [milestone_titel] => string 
    [client] => string 
    [milestone_verkocht_id] => int 
) 

我的问题是:如何在循环低谷与里程碑6(在这种情况下)

我环路连接所有milestonefases看起来是这样的:

foreach ($stones as $milestone) 
{ 
    echo '<tr id="'. $milestone['milestone_id'] . '" class="milestone'. $milestone['milestone_id'] . '">'; 
    echo '<td>'. $milestone['milestone_id'] . '</td>'; 
    echo '<td><a href="javascript:keuzeGebruiker(\'milestone'.$milestone['milestone_id']. '\',\''.$milestone['milestone_id'].'\');">' . $milestone['milestone_titel'] . '</a></td>'; 
    echo '<td>'. $milestone['client'] . '</td>'; 
    echo '</tr>'; 

    for ($i = 0; $i < count($milestone['milestonesfases']); $i++) 
    { 
     echo '<tr>'; 
     echo '<td>'. $milestone['milestonesfases']['milestonefase_id'] . '</td>'; 
     echo '<td>'. $milestone['milestonesfases'][10]['milestonefase_titel'] . '</td>'; 
     echo '<td></td>'; 
     echo '</tr>'; 
    } 
} 

我的循环中的'10'需要是所有milestonefase_id(这是里程碑中的10,11,12,13,14,15)。

我该如何设法获得所有里程碑事件。

注意!它必须为每一个里程碑工作不仅于此 请

那一块里程碑作品,但milestonefases不起作用。

你能帮助我还是你有解决方案?请帮帮我。

而不是使用一个for循环,

for ($i = 0; $i < count($milestone['milestonesfases']); $i++) 

做一个foreach循环

foreach ($milestone['milestonesfases'] as $milestonesfase) 
{ 
    echo '<tr>'; 
    echo '<td>'. $milestonesfase['milestonefase_id'] . '</td>'; 
    echo '<td>'. $milestonesfase['milestonefase_titel'] . '</td>'; 
    echo '<td></td>'; 
    echo '</tr>'; 
} 
+0

谢谢先生,这工作! – Haffoo

请尽量

foreach ($stones as $milestone) 
{ 
echo '<tr id="'. $milestone['milestone_id'] . '" class="milestone'. $milestone['milestone_id'] . '">'; 
echo '<td>'. $milestone['milestone_id'] . '</td>'; 
echo '<td><a href="javascript:keuzeGebruiker(\'milestone'.$milestone['milestone_id']. '\',\''.$milestone['milestone_id'].'\');">' . $milestone['milestone_titel'] . '</a></td>'; 
echo '<td>'. $milestone['client'] . '</td>'; 
echo '</tr>'; 

foreach($milestone['milestonesfases'] as $milestoneRow) 
{ 
    if($milestoneRow['milestonefase_milestone_id'] == $milestone['milestone_id']) { 
     echo '<tr>'; 
     echo '<td>'. $milestoneRow['milestonefase_id'] . '</td>'; 
     echo '<td>'. $milestoneRow['milestonefase_titel'] . '</td>'; 
     echo '<td></td>'; 
     echo '</tr>'; 
    } 
} 
} 
+0

不,这不起作用,因为迭代是错误的。你不能(安全地)用'for($ i = 0; $ i

+0

是的你是正确的我没有注意到钥匙。我们必须使用foreach而不是for循环。更正了我的答案 – Mahesh

这是检查是否是数组,你可以用它使用相同的foreach像@Aron说:

foreach ($stones as $milestone) 
{ 
    echo '<tr id="'. $milestone['milestone_id'] . '" class="milestone'. $milestone['milestone_id'] . '">'; 
    echo '<td>'. $milestone['milestone_id'] . '</td>'; 
    echo '<td><a href="javascript:keuzeGebruiker(\'milestone'.$milestone['milestone_id']. '\',\''.$milestone['milestone_id'].'\');">' . $milestone['milestone_titel'] . '</a></td>'; 
    echo '<td>'. $milestone['client'] . '</td>'; 
    echo '</tr>'; 
if(is_array($milestone['milestonesfases'])){ 
    foreach ($milestone['milestonesfases'] as $key => $value) { 
     echo '<tr>'; 
     echo '<td>'. $value['milestonefase_id'] . '</td>'; 
     echo '<td>'. $value['milestonefase_titel'] . '</td>'; 
     echo '<td></td>'; 
     echo '</tr>'; 
    } 
    } 
}