2017-04-25 10 views
1

私は簡単にするためにいくつかの不要なコードを削除しました。私は2つの連想配列を持っています。このコードは、配列 "tables"から4行を生成し、配列 "units"からn個のセルを表示することになっています。中には一度だけ発火する

テーブル列=

$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分午後01時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