728x90
안녕하세요.
오늘은 MultipleIterator 와 foreach 를 활용하여 여러 배열 동시에 반복해보도록 하겠습니다.
MultipleIterator
서로 다른 여러 배열의 같은 인덱스에 있는 값들을 한 번에 가져와야 할 때가 있습니다.
보통 for 루프와 $i 인덱스를 사용하지만, 코드가 지저분해지기 쉽습니다.
MultipleIterator를 활용하면 여러 배열(또는 이터레이터)을 하나로 묶어, foreach 루프 한 번으로 각 배열의 요소들을 동시에 접근할 수 있습니다.
예제
상품 ID, 이름, 가격이 각각 다른 배열에 담겨 있을 때, MultipleIterator를 사용해 한 번에 출력하는 예제입니다.
<?php
$ids = [101, 102, 103];
$names = ['사과', '바나나', '오렌지'];
$prices = [1500, 3000, 1200];
// 여러 배열을 하나로 묶어주는 MultipleIterator 생성
$mi = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC);
$mi->attachIterator(new ArrayIterator($ids), 'ID');
$mi->attachIterator(new ArrayIterator($names), '상품명');
$mi->attachIterator(new ArrayIterator($prices), '가격');
// foreach 한 번으로 모든 배열의 요소에 접근
foreach ($mi as $item) {
echo "{$item['ID']}번 상품: {$item['상품명']}, 가격: {$item['가격']}원\n";
}
?>
결과
101번 상품: 사과, 가격: 1500원
102번 상품: 바나나, 가격: 3000원
103번 상품: 오렌지, 가격: 1200원'PHP' 카테고리의 다른 글
| [PHP] SplMaxHeap 가장 큰 값이 항상 맨 위에 위치하는 자료구조 (0) | 2025.10.19 |
|---|---|
| [PHP] SplPriorityQueue로 중요 작업 먼저 처리하기 (0) | 2025.10.16 |
| [PHP] 숫자 내장 함수: number_format, round, rand 함수 (0) | 2025.10.13 |
| [PHP] ... (스프레드 연산자) 배열 병합 및 함수 인자 전달 (0) | 2025.10.05 |
| [PHP] 객체의 불변성을 보장하는 readonly 프로퍼티 (0) | 2025.10.03 |