중첩 foreach 루프를 사용하여 여러 배열을 반복할 때 다음과 같은 함정을 피하는 것이 중요합니다. 첫 번째 배열의 각 요소에 대해 두 번째 배열의 모든 요소를 반복합니다. 이는 잘못된 결과로 이어집니다.
1. array_map() 메서드(PHP >=5.3)
array_map()을 사용하면 여러 배열을 인수로 전달하고 동시에 반복할 수 있습니다.
array_map(function($v1, $v2){ echo $v1 . "<br>"; echo $v2 . "<br><br>"; }, $data1, $data2);
2 . MultipleIterator 메서드(PHP >=5.3)
MultipleIterator를 생성하고 반복하려는 각 배열에 대해 ArrayIterator 개체를 연결합니다.
$it = new MultipleIterator(); $it->attachIterator(new ArrayIterator($data1)); $it->attachIterator(new ArrayIterator($data2)); foreach($it as $a) { echo $a[0] . "<br>"; echo $a[1] . "<br><br>"; }
3. 카운터가 있는 for 루프(PHP >=4.3)
두 배열의 키로 카운터 변수가 있는 for 루프를 사용합니다.
$keysOne = array_keys($data1); $keysTwo = array_keys($data2); $min = min(count($data1), count($data2)); for($i = 0; $i < $min; $i++) { echo $data1[$keysOne[$i]] . "<br>"; echo $data2[$keysTwo[$i]] . "<br><br>"; }
4. array_combine() 메서드(PHP >=5.0)
배열에 고유한 값이 있는 경우 array_combine()을 사용하여 이를 키-값 쌍으로 결합합니다. 여기서 $data1은 키이고 $data2입니다. 값입니다.
foreach(array_combine($data1, $data2) as $d1 => $d2) { echo $d1 . "<br>"; echo $d2 . "<br><br>"; }
5. call_user_func_array() 메서드(PHP >=5.6)
세 개 이상의 배열 또는 알 수 없는 개수의 배열을 반복하려면 array_map()을 call_user_func_array()와 함께 사용하세요.
$func = function(...$numbers){ foreach($numbers as $v) echo $v . "<br>"; echo "<br>"; }; call_user_func_array("array_map", [$func, $data1, $data2]);
위 내용은 PHP에서 여러 배열을 동시에 효율적으로 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!