foreach()
PHP foreach() 구문 구조는 작업이나 출력 배열을 탐색하는 데 사용됩니다. foreach()는 다른 데이터 유형이나 객체에 사용하려고 할 때만 사용할 수 있습니다. 알 수 없음 변수를 초기화할 때 오류가 발생합니다.
구문:
foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement
위 구문에서 각 루프는 현재 단위의 값을 $value 및 내부 포인터에 할당합니다. 배열이 한 단계 앞으로 나아갑니다. 두 번째 구문 형식에서는 현재 단위의 키 이름이 각 루프의 변수 $key에도 할당됩니다.
예:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { echo $age,'<br />'; } ?>
이 예제 출력을 실행합니다.
18 20 25
배열 키 값 사용
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
예제 출력 실행:
wang: 18 li: 20 zhang: 25
foreach 실행이 시작되면 배열 내부의 포인터가 자동으로 첫 번째 유닛을 가리킵니다. 즉, foreach 루프 전에 Reset()을 호출할 필요가 없습니다.
foreach는 배열 자체가 아닌 지정된 배열의 복사본에서 작동합니다. 반환된 배열 요소를 수정해도 원본 배열에는 영향을 미치지 않습니다(아래 예 참조). 그러나 foreach 루프가 끝까지 실행되면 원본 배열의 내부 포인터가 배열의 끝을 가리킵니다.
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
예제 실행 결과:
28 30 35 Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
foreach에서 참조를 사용하여 원래 배열 요소를 수정할 수 있습니다. 위의 예를 다음과 같이 변경합니다.
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as &$age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
예제 실행 결과:
18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
다차원 배열 탐색
foreach 구문 구조는 1차원 배열을 탐색하는 데만 사용할 수 있습니다. 일반적으로 foreach 중첩 재귀를 사용합니다. 또는 원래 배열을 1차원 배열로 분할한 다음 foreach를 통해 배열을 탐색합니다.
1차원 배열과 2차원 배열 혼합의 예:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25)); foreach ($arr_age as $age) { if(is_array($age)){ foreach ( $age as $detail) { echo $detail,'<br />'; } } else { echo $age,'<br />'; } } ?>
다차원 배열의 순회 처리에는 실제 배열을 기반으로 가장 적절한 처리 방법이 필요합니다. 데이터 구조.
PHP 배열은 HashTable 테이블을 통해 구현되므로 foreach는 요소가 추가되는 순서에 따라 배열을 순회합니다. 인덱스 크기별로 반복하려면 for() 루프를 사용해야 합니다.
for() 루프를 사용하여 배열 탐색
연속적인 키 값의 배열을 작동하는 경우 for() 루프를 사용하여 배열을 탐색할 수도 있습니다.
<?php $arr_age = array(18, 20, 25); $num = count($arr_age); for($i = 0; $i < $num; $i++){ echo $arr_age[$i]."<br />"; } ?>
list() 및 Each()를 사용하여 배열을 순회할 수도 있지만 테스트 결과
효율성이 foreach()만큼 좋지 않은 것으로 나타났습니다.
위의 PHP 배열 순회 foreach 구문 구조와 예제는 모두 편집자가 공유한 내용이므로 참고가 되기를 바라며, PHP 중국어에도 많은 관심을 가져주시길 바랍니다. 웹사이트.
각 구문 구조에 대한 PHP 배열 탐색과 관련된 더 많은 기사와 예제를 보려면 PHP 중국어 웹사이트를 주목하세요!