배열을 탐색하는 것은 프로그래밍에서 가장 일반적인 방법입니다. 여기서는 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');One:
for loop 구조
Loop 1:<?php for($i=0,$num=count($arr1);$i<$num;$i++){ echo $arr1[$i].' '; } ?>출력 결과:
a 22 cLoop 2:
<?php for($i=0,$num=count($arr2);$i<$num;$i++){ echo $arr2[$i].' '; } ?>이 명령문은 출력되지 않습니다. 분석 : 루프 1은 배열 $arr1의 처음 두 단위만 인쇄하는 반면, 루프 2의 $arr2는 아무것도 인쇄하지 않습니다. 이유는 for 루프가 숫자만큼 증가하므로 for는 키가 숫자인 배열에만 액세스할 수 있기 때문입니다. 예를 들어 루프 1은 키가 있는 $arr1 배열에 점진적으로 액세스하기 위해 $i=0 ~ $i=4를 사용합니다. 셀은 0부터 4까지이지만 배열의 키는 1,3,5,4,8입니다. 4(5=>'b',8=>'d')를 초과하는 키 값을 가진 배열 단위는 count($arr1)=5이기 때문에 액세스되지 않으므로 최종 출력은 $i<5; 결과만: a 22 c; $arr2의 모든 키는 숫자가 아닌 문자이므로 루프 2에는 출력이 없습니다. 두 개: foreach 루프 구조 루프 3:
<?php foreach($arr1 as $key=>$value){ echo $key.'=>'.$value.' '; } ?>출력 결과:
1=>a 3=>22 5=>b 4=>c 8=>d루프 4:
<?php foreach($arr2 as $key=>$value){ echo $key.'=>'.$value.' '; } ?>출력 결과:
a=>aaa b=>bbb c=>ccc d=>ddd e=>eee분석: foreach 루프 구조는 다음에 따라 반복됩니다. 포인터 내부 array 예, foreach가 실행되기 시작하면 배열 내부의 포인터가 자동으로 첫 번째 유닛을 가리킵니다. 따라서 다음 루프에서 다음 단위를 얻게 되며 배열 키에 따라 전체 배열을 순회할 필요가 없습니다. 이는 foreach와 for의 차이점이기도 합니다. 물론 foreach는 배열과 개체에만 사용할 수 있으며 foreach는 내부 배열 포인터에 의존하기 때문에 루프에서 값을 수정하면 예상치 못한 참고: for의 각 루프는 해당 결론: 배열이 연속된 숫자를 배열 단위의 키로 사용하는 경우 for 루프 구조를 사용할 수 있습니다. 배열의 키나 배열의 키에 문자가 포함되어 있는지 확실하지 않은 경우 foreach 루프 구조를 사용해야 합니다.
위 내용은 for와 foreach 루프 구조의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!