이 문제를 적절하게 표기하는 방법에 대해서는 확실하지 않지만 배열 내에 중첩 된 배열을 반복해야합니다.이 배열은 다른 배열의 요소 일 수도 있습니다. 처음에는 어떤 배열이 아직 루프되지 않았는지, 그리고 "기본"배열을 완전히 루프 하는지를 태그로 알리는 것이 필요하다고 생각했습니다. (이것이 필요하지 않으며 PHP가 어떻게 든 이것을 임의로 수행한다는 것을 알았지 만) . 문제는 조금 특이한 것처럼 보입니다 - 값을 찾지 못하면 테스트를위한 조건부 클로스가 생략되고, 그 반대의 경우에도 함수는 배열에 중첩 된 값을 어디서나 찾을 것입니다. 어쨌든,이 함수는 다음과 같습니다PHP 루핑 다차원 배열
function loop($arr, $find) {
for($i=0;$i<count($arr);$i++) {
if($arr[$i] == $find) {
print "Found $find";
return true;
} else {
if(is_array($arr[$i])) {
$this->loop($arr[$i], $find);
} else {
print "Couldn't find $find";
return false;
}
}
}
}
'foreach'에 지쳤습니까? – Tibor
무엇이 문제입니까? – shadyyx
@Tibor,'foreach'를 사용하는 것은'for'를 사용하는 것보다 느립니다. 이것은 작은 배열과는 관련이 없지만 다중 레벨 배열 (특히 큰 배열)에서는 빠른 속도 차이가있을 것입니다 ... – shadyyx