문제

내 코드의 배열은 꽤 커서 페이스트빈에 붙여넣었습니다. http://pastebin.com/6tviT2Xj

무한루프가 발생하는 이유를 모르겠습니다.

이 스크립트의 논리는 다음과 같습니다.

$it = new ArrayIterator($options);
while($it->valid()) {
    print $it->key();
    print $it->current();
}
도움이 되었습니까?

해결책

iterator를 이동하지 않기 때문에 ( ArrayIterator :: Next () ).

while ($it->valid()) {
    ...
    $it->next();
}
.

다른 팁

$it->next();를 사용해야합니다.

같은 키를 통해 지나게 될 것입니다.

현재 요소를 반복하고 있으므로 다음을 수행해야 합니다. $it->next(); 다음 요소를 가리키거나 이동하려면

주요 문제는 $it->next();를 실행하면 print $it->current();로 배열 정보를 출력 할 수 없으므로 Array를 실행할 수 없으므로 print를 실행할 수 없으므로 원하는 출력을 제공하지 않습니다.

다차원 배열을 처리하고 있기 때문에 RecursiveArrayIteratorRecursiveIteratorIterator를 사용해야합니다

모든 값을 시도해보십시오 :

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($options));
foreach ( $it as $key => $val ) {
    echo $key . ":" . $val . "\n";
}
.

전체 데모를 참조하십시오 : http://codepad.viper-7.com/uqf18q / P>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top