2017-04-25 92 views
1

我已经删除了一些不必要的代码,以简化。我有两个关联数组。此代码应该从数组“表”中生成四行,并显示数组“单元”中的n个单元格。第一行很好,但第二行因为某些原因不显示单位,只有当前用于Tables数组的键值。虽然只有一次触发

表数组=

$tables = array( 
     'Delta'=> array('Available','1','2'), 
     'Alpha' => array('Available','2','4'), 
     'Bravo'=> array('Available','2','4'), 
     'Charlie' => array('Available','4','6'), 
     'Echo' => array('Available','4','6') 
    ); 

单元阵列 -

$units = array (
    '00:00' => '1' , 
    '00:15' => '2' , 
    '00:30' => '3' , 
    '01:00' => '4' , 
    '01:15' => '5' , 
    ...tl/dr 


    echo "<table>"; 
    while($tab = each($tables)) 
     { 
     echo "<tr>"; 
     echo "<td>".$tab[ 'key' ]."</td>"; 
     while($element = each($units)) 
      { 
       echo "<td class='free'>".$element['key']."</td>"; 
      } 
     echo "</tr>"; 
     } 
    echo "</table>"; 

电流的结果:

德尔塔12:00 12:15 12:30 12:45 13:00 13:15 13:30 13:45 ....
阿尔法

布拉沃

查理

回声

回答

3

与您的代码最简单的回答是reset()$units数组指针,作为对第一次迭代外环$units将迭代并达到结尾:

while($tab = each($tables)) 
    { 
    echo "<tr>"; 
    echo "<td>".$tab[ 'key' ]."</td>"; 

    reset($units); 
    while($element = each($units)) 
     { 
      echo "<td class='free'>".$element['key']."</td>"; 
     } 
    echo "</tr>"; 
    } 

但是foreach()会为您做这个:

foreach($tables as $tab) 
    { 
    echo "<tr>"; 
    echo "<td>".$tab[ 'key' ]."</td>"; 

    foreach($units as $element) 
     { 
      echo "<td class='free'>".$element['key']."</td>"; 
     } 
    echo "</tr>"; 
    } 
+0

糟糕。在错误的地方回答。优秀。这工作正常。没有意识到我不得不重置它。我认为再遇到一次会自动重置它。非常感谢 – David