다음 foreach 루프에서 이상한 동작이 발생합니다. PHP 5.3.0에서 실행 중입니다.Foreach 루프의 이상한 동작
print_r($this->form_spec['fields']);
foreach($this->form_spec['fields'] as $f=>$field) {
print_r($this->form_spec['fields']);
}
첫 번째 인 print_r은 다음 (참고 : 내 지점을 명확하게하기 위해 키의 무리를 제외 한) : 인쇄
Array
(
[0] => Array
(
[field_name] => d_first_name
)
[1] => Array
(
[field_name] => d_last_name
)
)
두 번째 print_r
인쇄 :
Array
(
[0] => Array
(
[field_name] => d_first_name
)
[1] => Array
(
[field_name] => d_first_name
)
)
$ this-> form_spec [ 'fields']는 이미 각 루프에 도달하기 전에 값을 가지고 있습니다. 첫 번째 print_r은 올바른 값을 표시합니다. 두 번째 print_r은 값이 변경되었음을 나타냅니다. 이들 사이에 다른 코드는 없습니다.
5.3.0의 버그 일 수 있습니까?
문제를 해결할 수있는 유일한 방법은 대신 for 루프를 사용하는 것이었지만 Foreach는 항상 작동해야했습니다. 아무도 나에게 계몽 수 있습니까?
[편집] 단지이 문제는 $ this-> form_spec [ 'fields']의 내용이 내가 올바르게 인쇄 할 수 없다는 사실을 변경한다는 것이 었습니다.
stackoverflow에서 코드를 포맷하려면, 그것을 선택하고'Ctrl' +'K'을 누르십시오. – phihag
그래서 당신의 문제는 무엇입니까? 당신은'print_r' 같은 var를 두 번 두번 가지고 같은 결과를냅니다 .... – NDM
두번째 print_r은 d_first_name을 두 번 던지거나, 그게 아닌 것 같습니다. – Luceos