2017-04-25 6 views
1

나는 단순화를 위해 불필요한 코드를 제거했습니다. 두 연관 배열이 있습니다. 이 코드는 배열 "테이블"에서 4 개의 행을 생성하고 배열 "단위에서 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시 12시 15분 12시 반 12시 45분 13시 13시 15분 13시 반 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()은 다음과 같이 처리합니다.

+0

틀린 장소에서 대답했다. 우수한. 그건 잘 작동합니다. 내가 그것을 다시 설정해야한다는 것을 몰랐다. 잠시 만났을 때 자동으로 다시 설정한다고 가정했습니다. 많은 감사 – David