
ArrayObject::getIterator 메서드는 ArrayObject 객체에서 반복자 객체를 반환합니다. 반환되는 반복자 객체의 종류는 다음과 같습니다.
- ArrayIterator: 기본 반복자 객체로, ArrayObject 객체의 키와 값이 순차적으로 얻어집니다.
- RecursiveArrayIterator: ArrayObject 객체가 중첩된 배열인 경우 사용하는 반복자 객체로, 중첩된 배열의 키와 값이 순차적으로 얻어집니다.
- AppendIterator: ArrayObject 객체의 끝에 요소를 추가할 때 사용하는 반복자 객체로, ArrayObject 객체의 키와 값이 순차적으로 얻어집니다.
- PrependIterator: ArrayObject 객체의 시작에 요소를 추가할 때 사용하는 반복자 객체로, ArrayObject 객체의 키와 값이 역순으로 얻어집니다.
- CachingIterator: ArrayObject 객체의 요소를 캐싱하여 반복할 때 사용하는 반복자 객체로, ArrayObject 객체의 키와 값이 순차적으로 얻어집니다.
- UnsetIterator: ArrayObject 객체의 요소를 삭제할 때 사용하는 반복자 객체로, ArrayObject 객체의 키와 값이 순차적으로 얻어집니다.
반복자 객체를 사용하여 배열의 요소를 순회할 때, 요소의 키와 값은 다음과 같이 얻어집니다.
- 키: current() 메서드를 사용하여 얻을 수 있습니다.
- 값: current() 메서드를 사용하여 얻을 수 있습니다.
반복을 진행할 때, getIterator 메서드에 옵션을 지정하여 사용할 수 있습니다.
- Recursive: 중첩된 배열을 반복할 때 사용하는 옵션으로, RecursiveArrayIterator 반복자 객체를 반환합니다.
- Append: ArrayObject 객체의 끝에 요소를 추가할 때 사용하는 옵션으로, AppendIterator 반복자 객체를 반환합니다.
- Prepend: ArrayObject 객체의 시작에 요소를 추가할 때 사용하는 옵션으로, PrependIterator 반복자 객체를 반환합니다.
- Caching: ArrayObject 객체의 요소를 캐싱하여 반복할 때 사용하는 옵션으로, CachingIterator 반복자 객체를 반환합니다.
- Unset: ArrayObject 객체의 요소를 삭제할 때 사용하는 옵션으로, UnsetIterator 반복자 객체를 반환합니다.
예제를 통해 ArrayObject::getIterator 메서드의 사용 방법을 확인할 수 있습니다.
#hostingforum.kr
php
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => array(
'key4' => 'value4',
'key5' => 'value5'
)
);
$arrayObject = new ArrayObject($array);
// 기본 반복자 객체
$iterator = $arrayObject->getIterator();
echo current($iterator) . "n"; // value1
echo current($iterator) . "n"; // value2
echo current($iterator) . "n"; // key4
echo current($iterator) . "n"; // value4
// 중첩된 배열을 반복할 때 사용하는 옵션
$iterator = $arrayObject->getIterator(new RecursiveIteratorIterator($iterator));
echo current($iterator) . "n"; // key4
echo current($iterator) . "n"; // value4
echo current($iterator) . "n"; // key5
echo current($iterator) . "n"; // value5
// ArrayObject 객체의 끝에 요소를 추가할 때 사용하는 옵션
$arrayObject->append('key6', 'value6');
$iterator = $arrayObject->getIterator(new AppendIterator());
echo current($iterator) . "n"; // key6
echo current($iterator) . "n"; // value6
// ArrayObject 객체의 시작에 요소를 추가할 때 사용하는 옵션
$arrayObject->prepend('key7', 'value7');
$iterator = $arrayObject->getIterator(new PrependIterator());
echo current($iterator) . "n"; // key7
echo current($iterator) . "n"; // value7
2025-07-31 15:59