2013-04-07 1 views
1

PHP 스크립트에 이상한 문제가 있습니다. 키 인쇄하려고, 내가 배열을 반복하고있어 나중에 어떤 점에서배열의 데이터에도 불구하고 PHP foreach 루프가 전달되지 않습니다.

$keys = array("name","date","event","location","address","description","link","linkname"); 

: 나는 스크립트의 시작 부분에 정의 된 배열 $ 키가

foreach ($keys as $key_show) { 
    echo ($key_show); 
} 

을 그리고 아무것도 실제로 인쇄되지 않습니다. 나는 루프 앞에 var_dump ($ keys)를 두었고 배열의 문자열은 여전히 ​​스크립트의이 시점에서 위에있는 항목으로 채워진 것 같습니다. 흥미롭게도, 거기에 var_dump를 놓자 마자 foreach 루프에 키가 나타났습니다.

전체 스크립트는 에코 "문자열"에코 ("문자열") 모든 혼합을 사용하는 이유, 게다가 here

+1

할당과 'foreach' 루프를 연속적으로 테스트하면 올바르게 작동하고 모든 값을 보여줍니다. 과제와 루프 사이에 뭔가가 있어야 문제가 발생합니다. –

+0

그게 내가 생각한거야, 따라서 var_dump로 확인하십시오. 배열은 여전히 ​​foreach 루프와 루프 내부의 이전 상태입니다. 적어도 var_dump가 표시합니다. – 1nterference

+0

호기심에서 'foreach'를 'while'으로 바꾸십시오. 나는이 문제를 조금 전부터 가지고 있었고 약간의 기이한 이유로'while' 루프에서 작업했습니다. – christopher

답변

5

당신은 그렇게 모든 $key_show 값이 form 태그의 속성으로 처리되며 따라서 귀하의 HTML 출력에 표시되지 않습니다는 form 태그를 닫지 마십시오.

이 스크립트를 명령 줄에서 실행하면 var_dump()이 있거나없는 배열 값이 표시됩니다.

+0

예! 그게 전부 야. 악마는 세부 사항에 있습니다. – 1nterference

0

볼 수 있는가?

대괄호없이 시도 하시겠습니까? 귀하의 링크

} elseif (isset($_POST['editconfirm'])) { 
    ... 
    if ($jsonConcerts) { 
     echo "<form method=\"POST\" action=\"edit.php\""; 
     //var_dump($keys); 
     foreach ($keys as $key_show) { 
      echo ($key_show. ": "); 
      //echo "<input class=\"wide\" name=\"".$key. 
      //"\" value=\"".$jsonConcerts[$counter][$key]."\"><br>\n"; 
     } 
     ... 

에서

foreach ($keys as $key_show) { 
    echo $key_show; 
} 
+0

괄호는 유효한 PHP 코드입니다. – HamZa

+2

알아요,하지만 한 줄로 쓰지 않고 다른 줄로 사용하는 이유는 무엇입니까? 나는 결코 그것들을 사용하지 않는다. – djot

관련 문제