each
(PHP 4, PHP 5)
each — 배열에서 현재의 키와 값 쌍을 반환하고 배열 커서를 전진시킨다
설명
array 배열에서 현재의 키와 값 쌍을 반환하고 배열 커서를 전진시킨다. 이 키/값 쌍은 4개 원소를 갖는 배열을 반환한다. 0, 1, key, value 이다. 원소 0과 key는 배열 원소의 키 이름을 포함하고, 1과 value는 데이터를 포함한다.
배열의 내부 포인터가 배열의 끝을 벗어나면, each()는 FALSE를 반환한다.
Example#1 each() 예제코드
<?php
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);
print_r($bar);
?>
$bar는 현재 다음과 같은 key/value 쌍을 포함한다:
Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 )
<?php
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
print_r($bar);
?>
$bar는 현재 다음과 같은 key/value 쌍을 포함한다:
Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )
each()는 배열을 사용하기 위해 일반적으로 list()와 같이 사용한다. 예제코드는 다음과 같다:
Example#2 each()로 배열 사용하기
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset ($fruit);
while (list ($key, $val) = each ($fruit)) {
echo "$key => $val\n";
}
/* Outputs:
a => apple
b => banana
c => cranberry
*/
?>
each()가 수행되면, 배열 커서는 배열의 다음 원소로 옮겨지거나, 배열의 끝인 경우에는 마지막 원소를 통과한다. each를 사용하여 다시 배열을 사용하려면 reset()을 사용해야 한다.
배열을 다른 변수로 지정하는 것은 원래의 배열 포인터를 초기화 하는것이기 때문에, 위 예제코드는 루프안에서 $fruit를 다른 변수로 지정하게 되면 무한 루프를 유발할수 있다.
key(), list(), current(), reset(), next(), prev(), foreach 참고.