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 )
2차원 배열혼합 예:
$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 />'; } } ?>이 예제 출력 실행:
18 20 小张 25다차원
배열 탐색 처리에는 실제 데이터 구조를 기반으로 하는 가장 적절한 처리 방법이 필요합니다.
확장된 사전 읽기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 />"; } ?>예제 실행 결과는 다음과 같습니다.
18 20 25Tipslist()를 Each()와 결합하여 배열을 탐색할 수도 있지만 테스트 결과 foreach()만큼 효율적이지 않은 것으로 나타났습니다.
아아아아
위 내용은 foreach 및 for를 사용하여 배열을 반복하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!