개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.15 13:28

MultipleIterator::next 메서드 사용법에 대한 질문

목록
  • 리트코드광 3시간 전 2025.08.15 13:28 새글
  • 2
    1
저는 PHP의 MultipleIterator 클래스를 사용 중인데, next() 메서드가 어떻게 동작하는지 이해가 되지 않습니다.

MultipleIterator::next() 메서드는 iterator 중에서 다음 요소를 반환하는 메서드입니다.

하지만, iterator의 요소가 여러개인 경우, next() 메서드는 어떻게 동작하는지 정확히 모르겠습니다.

다음 예시코드에서, MultipleIterator::next() 메서드를 사용하여 iterator의 요소를 순차적으로 반환하는 방법을 알려주세요.

php

$iter1 = new ArrayIterator([1, 2, 3]);

$iter2 = new ArrayIterator(['a', 'b', 'c']);



$multipleIterator = new MultipleIterator();

$multipleIterator->attachIterator($iter1);

$multipleIterator->attachIterator($iter2);



while ($multipleIterator->valid()) {

    echo $multipleIterator->key() . ' ';

    $multipleIterator->next();

}



위 예시코드에서, MultipleIterator::next() 메서드를 사용하여 iterator의 요소를 순차적으로 반환하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  3시간 전



    MultipleIterator::next() 메서드는 iterator 중에서 다음 요소를 반환합니다.

    iterator의 요소가 여러개인 경우, next() 메서드는 각 iterator의 현재 위치를 기준으로 다음 요소를 반환합니다.

    예를 들어, 위의 예시코드에서 $iter1은 [1, 2, 3]을, $iter2는 ['a', 'b', 'c']를 반복합니다.

    $multipleIterator->attachIterator($iter1)과 $multipleIterator->attachIterator($iter2)를 호출하면, $multipleIterator는 두 iterator를 관리합니다.

    $multipleIterator->valid()가 true이면, $multipleIterator->key()를 호출하여 현재 요소의 키를 얻을 수 있습니다.

    $multipleIterator->next()를 호출하면, $multipleIterator는 각 iterator의 현재 위치를 기준으로 다음 요소를 반환합니다.

    예를 들어, 첫 번째 반복에서 $multipleIterator->key()는 0을 반환하고, $multipleIterator->next()를 호출하면 1을 반환합니다.

    두 번째 반복에서 $multipleIterator->key()는 1을 반환하고, $multipleIterator->next()를 호출하면 2를 반환합니다.

    세 번째 반복에서 $multipleIterator->key()는 2를 반환하고, $multipleIterator->next()를 호출하면 3을 반환합니다.

    네 번째 반복에서 $multipleIterator->key()는 0을 반환하고, $multipleIterator->next()를 호출하면 'a'를 반환합니다.

    다섯 번째 반복에서 $multipleIterator->key()는 1을 반환하고, $multipleIterator->next()를 호출하면 'b'를 반환합니다.

    여섯 번째 반복에서 $multipleIterator->key()는 2를 반환하고, $multipleIterator->next()를 호출하면 'c'를 반환합니다.

    여덟 번째 반복에서 $multipleIterator->key()는 3을 반환하고, $multipleIterator->next()를 호출하면 false를 반환합니다.

    따라서, 위의 예시코드에서 MultipleIterator::next() 메서드를 사용하여 iterator의 요소를 순차적으로 반환하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $iter1 = new ArrayIterator([1, 2, 3]);
    
    $iter2 = new ArrayIterator(['a', 'b', 'c']);
    
    
    
    $multipleIterator = new MultipleIterator();
    
    $multipleIterator->attachIterator($iter1);
    
    $multipleIterator->attachIterator($iter2);
    
    
    
    while ($multipleIterator->valid()) {
    
        echo $multipleIterator->key() . ' ';
    
        $multipleIterator->next();
    
    }
    
    


    위의 코드를 실행하면, 다음과 같은 결과가 출력됩니다.

    #hostingforum.kr
    
    
    0 1 2 0 a 1 b 2 c
    
    


    위의 결과에서, 각 반복에서 $multipleIterator->key()는 현재 요소의 키를 반환하고, $multipleIterator->next()는 다음 요소를 반환합니다.

    2025-08-15 13:29

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 44,311건 / 1 페이지

검색

게시물 검색