>  기사  >  백엔드 개발  >  배열 탐색을 위해 PHP에서 for와 foreach 루프 구조의 차이점을 이해하는 방법

배열 탐색을 위해 PHP에서 for와 foreach 루프 구조의 차이점을 이해하는 방법

一个新手
一个新手원래의
2017-10-05 15:30:291742검색

배열 순회는 프로그래밍에서 가장 일반적인 것입니다. 여기서는 for와 foreach의 두 가지 방법에 대해 설명합니다.

먼저 순회를 위해 두 개의 배열을 준비합니다.

$arr1=array(1=>' a', 3 =>22, 5=>'b', 4=>'c', 8=>'d');

$arr2=array('a'=>'aaa' , 'b' =>'bbb', 'c'=>'ccc', 'd'=>'ddd', 'e'=>'eee');

1: for 루프 구조

루프 1:

for($i=0,$num=count($arr1);$i<$num;$i++){
    echo $arr1[$i].&#39; &#39;;
}

출력 결과: a 22 c

루프 2:

for($i=0,$num=count($arr2);$i<$num;$i++){
    echo $arr2[$i].&#39; &#39;;
}

이 문에는 출력이 없습니다.

분석:

루프 1은 배열 $arr1의 처음 두 단위만 인쇄하고, 루프 2는 $에 아무것도 인쇄하지 않습니다. arr2.

이유는 for 루프가 숫자만큼 증가하므로 for는 인덱스 배열에만 액세스할 수 있기 때문입니다. 예를 들어 루프 1은 $arr1 배열에서 $i=0부터 $i까지 키가 0부터 4인 단위에 점진적으로 액세스합니다. =4. 그러나 이 배열의 키는 1,3,5,4,8입니다. 4(5=>'b',8=>'d')를 초과하는 키 값을 가진 배열 단위는 count($arr1)=5이기 때문에 액세스되지 않으므로 최종 출력은 $i712463c71cdc03bb66230d20799a7971aaa b=>bbb c=>ccc d=>ddd e=>eee

분석:

foreach 루프 구조는 배열 내부의 포인터에 따라 루프됩니다. when

foreach

가 실행을 시작하면 배열 내부의 포인터가 자동으로 첫 번째 유닛을 가리킵니다. 따라서 다음 루프에서 다음 단위를 얻게 되며 배열 키에 따라 전체 배열을 순회할 필요가 없습니다. 이는 foreach와 for의 차이점이기도 합니다. 물론

foreach는 배열 및 객체

에만 사용할 수 있으며

foreach는 내부 배열 포인터에 의존하기 때문에 루프에서 해당 값을 수정하면 예기치 않은 동작이 발생할 가능성이 높습니다. 참고: for의 각 루프는 해당 인덱스 아래의 값에 대해 작동하며 각 값의 변경 사항은 탐색된 개체에도 반영됩니다. foreach는 단위를 작동할 때마다 해당 인덱스와 값을 각각 변수로 가져오거나 값을 하나의 변수로 가져온 다음 탐색된 객체 자체에 영향을 주지 않고 인덱스와 값을 별도로 사용하여 변수를 작동합니다. 순회 프로세스 중에 객체의 값을 수정하려면 선언에서 변수 앞에 & 기호를 추가해야 합니다. 예: foreach($array as&$value). 결론: 배열이 연속된 숫자를 배열 단위의 키로 사용하는 경우 for 루프 구조를 사용할 수 있습니다. 배열의 키 또는 배열의 키에 문자가 포함되어 있는지 확실하지 않은 경우 foreach 루프 구조를 사용해야 합니다. .

위 내용은 배열 탐색을 위해 PHP에서 for와 foreach 루프 구조의 차이점을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.