배열을 사용할 때 배열을 순회해야 하는 경우가 많습니다. 배열을 반복하여 개별 키나 값을 가져와야 하는 경우가 종종 있으므로(또는 키와 값을 모두 가져오는 경우) 당연히 PHP는 이러한 목적을 위해 몇 가지 기능을 제공합니다. 많은 함수는 현재 포인터 위치에서 키나 값을 얻는 것뿐만 아니라 포인터를 다음 적절한 위치로 이동하는 두 가지 작업을 수행합니다.
현재 배열 키 가져오기 key()
key() 함수는 input_array의 현재 포인터 위치에 있는 키를 반환합니다. 형식은 다음과 같습니다.
mixed key(array array)
다음 예에서는 배열을 반복하고 포인터를 이동하여 $fruits 배열의 키를 출력합니다.
$ 과일 = array("사과"=>"빨간색", "바나나"=>"노란색");
while ($key = key($fruits)) {
printf(" %s < br />", $key);
next($fruits);
}
// 사과
// 바나나
매번 포인터는 key()가 처음 호출될 때 이동되지 않습니다. 이를 위해서는 next() 함수를 사용해야 합니다. 이 함수의 유일한 기능은 포인터를 전진시키는 작업을 완료하는 것입니다.
현재 배열 값 가져오기 current()
current() 함수는 배열의 현재 포인터 위치에 있는 배열 값을 반환합니다. 그 형식은 다음과 같습니다:
mixed current(array array)
이전 예제를 수정해 보겠습니다. 이번에는 배열 값을 가져오고 싶습니다.
$ 과일 = array( "사과"=>"빨간색", "바나나"=>"노란색");
while ($fruit = current($fruits)) {
printf("%s < br /> ", $fruit);
next($fruits);
}
// 빨간색
// 노란색
현재 배열 키 및 값 가져오기 Each()
each() 함수는 input_array의 현재 키/값 쌍을 반환하고 포인터를 한 위치 전진시킵니다. 형식은 다음과 같습니다.
arrayeach(array array)
반환된 배열에는 4개의 키가 포함되어 있으며, 키 0과 키에는 키 이름이 포함되고, 키 1과 값에는 해당 데이터 . 각()이 실행되기 전에 포인터가 배열의 끝에 있으면 false가 반환됩니다.
$fruits = array("apple", "banana", "orange", "pear");
print_r (each($fruits) );
// 배열( [1] => apple [value] => apple [0] => 0 [key] => 0 )
each()는 종종 list()와 함께 사용됩니다. 배열을 순회합니다. 이 예는 이전 예와 유사하지만 전체 배열이 루프로 출력됩니다.
$fruits = array("apple", "banana", "orange", "pear");
재설정($fruits) ;
while (list($key, $val) = 각각($fruits))
{
echo "$key => $val
";
}
// 0 => 사과
// 1 => 바나나
// 2 => 오렌지
// 3 => 배
한 배열을 다른 배열에 할당하면 원래 배열 포인터가 재설정되기 때문에 위의 예에서 $fruits를 루프 내의 다른 변수에 할당하면 무한 루프가 발생합니다.
이렇게 하면 배열 순회가 완료됩니다.