1. foreach()
foreach()는 배열의 데이터를 탐색하는 가장 간단하고 효과적인 방법입니다.
#예1:
<?php $colors= array('red','blue','green','yellow'); foreach ($colorsas$color){ echo "Do you like $color? <br />"; } ?>
표시 결과:
빨간색을 좋아하시나요?
파란색을 좋아하시나요?
녹색을 좋아하시나요?
노란색을 좋아하시나요?
#example2:
<?php $colors= array('red','blue','green','yellow'); while(list($key,$val)= each($colors)) { echo "Other list of $val.<br />"; } ?>
표시 결과:
빨간색의 다른 목록.
녹색의 다른 목록.
노란색의 다른 목록.
3 for()
<?php $arr= array ("0"=> "zero","1"=> "one","2"=> "two"); for ($i= 0;$i< count($arr); $i++){ $str= $arr[$i]; echo "the number is $str.<br />"; } ?>
표시 결과:
숫자는 0입니다.
숫자는 1입니다.숫자는 2입니다.
========== 다음은 함수 소개입니다==== ==== ===
key()
key() 함수는 현재 포인터 위치에서 input_array의 키 요소를 반환합니다.
#example4
<?php $capitals= array("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix"); echo "<p>Can you name the capitals of these states?</p>"; while($key= key($capitals)) { echo $key."<br />"; next($capitals); //每个key()调用不会推进指针。为此要使用next()函数 } ?>
이 주의 수도 이름을 지정할 수 있나요?
OhioTowa
Arizona
reset()
reset( ) 기능 input_array 포인터를 배열의 시작 부분으로 다시 설정하는 데 사용됩니다. 이 함수는 스크립트에서 동일한 배열을 여러 번 보거나 처리해야 하는 경우에 자주 사용됩니다. 또한 정렬이 끝날 때에도 자주 사용됩니다.
#example5 - #example1에 코드
<?php $colors= array('red','blue','green','yellow'); foreach ($colorsas$color){ echo "Do you like $color? <br />"; } reset($colors); while(list($key,$val)= each($colors)) { echo "$key=> $val<br />"; } ?>
를 추가하면 결과가 표시됩니다.
Do you like red?
Do you like blue?Do you like green?
Do you like yellow?
0 => ; red
1 => blue
2 => green
3 => yellow
참고: 배열을 다른 배열에 할당하면 원래 배열 포인터가 재설정되므로 위의 예에서는 $colors를 내부적으로 할당합니다. 다른 변수로 바꾸면 무한 루프가 발생합니다.
while 루프
에 $s1 = $colors;를 추가하고 코드를 다시 실행하면 브라우저에 결과가 끝없이 표시됩니다. each()
each() 함수는 입력 배열의 현재 키/값 쌍을 반환하고 포인터를 한 위치 전진시킵니다. 반환된 배열에는 4개의 키가 포함되어 있습니다. 키 0과 키에는 키 이름이 포함되고, 키 1과 값에는 해당 데이터가 포함됩니다. 각()이 실행되기 전에 포인터가 배열의 끝에 있으면 FALSE가 반환됩니다.
#example6
<?php $capitals= array("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix"); $s1= each($capitals); print_r($s1); ?>
표시 결과:
Array ( [1] => 콜럼버스 [값] => 콜럼버스 [0] => 오하이오 [키] => 오하이오 )
현재 (), next(), prev(), end()
current() 함수는 target_
array array의 현재 포인터 위치에 위치한 배열 값을 반환합니다. next(), prev() 및 end() 함수와 달리 current()는 포인터를 이동하지 않습니다. next() 함수는 현재 배열 포인터의 다음 위치에 있는 배열 값을 반환합니다. prev() 함수는 현재 포인터의 이전 위치에 있는 배열 값을 반환합니다. 포인터가 원래 배열의 첫 번째 위치에 있으면 FALSE를 반환합니다.
end() 함수는 포인터를 target_array의 마지막 위치로 이동하고 마지막 요소를 반환합니다.
#example7
<?php $fruits= array("apple","orange","banana"); $fruit= current($fruits); //return "apple" echo $fruit."<br />"; $fruit= next($fruits); //return "orange" echo $fruit."<br />"; $fruit= prev($fruits); //return "apple" echo $fruit."<br />"; $fruit= end($fruits); //return "banana" echo $fruit."<br />"; ?>
표시 결과:
apple
orangeapple
banana
============= 세 가지 배열 순회 속도를 테스트해 보겠습니다===== = ======
일반적으로 배열을 순회하는 방법에는 for, while, foreach 세 가지가 있습니다. 그 중 가장 간단하고 편리한 것은 foreach입니다. 먼저 50,000개의 첨자가 있는
1차원 배열을 탐색하는 데 걸리는 시간을 테스트해 보겠습니다. 테스트 환경:
Intel Core Due2 2GHz2GB 1067MHz DDR3
Mac OS
테스트 결과:
사용 시간:0.0228429(s)
사용 시간:0.0544658(s)
d 시간 foreach:0.0085628(s) 반복 테스트 결과, 동일한 배열을 순회하는 경우 foreach가 가장 빠르고 while이 가장 느린 것으로 나타났습니다. 원칙적으로 foreach는 배열의 복사본에서 작동하는 반면(배열 복사를 통해) while은 배열의 내부 인덱스를 이동하여 작동합니다. 일반적으로 foreach가 먼저 배열을 이동하기 때문에 while이 foreach보다 빠릅니다. 실행이 시작되면 복사되고 while은 내부 포인터를 직접 이동하지만 결과는 정반대입니다. 그 이유는 foreach는 PHP의 내부 구현인 반면 while은 일반적인 루프 구조이기 때문입니다. 따라서 일반 애플리케이션에서는 foreach가 간단하고 효율적입니다. PHP5에서는 foreach가 클래스 속성을 탐색할 수도 있습니다.
위 내용은 PHP 배열 순회 함수 및 사용법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!