>  기사  >  백엔드 개발  >  foreach 및 for를 사용하여 배열을 반복하는 방법

foreach 및 for를 사용하여 배열을 반복하는 방법

伊谢尔伦
伊谢尔伦원래의
2017-06-22 15:04:382332검색

foreach 구문 구조는 배열을 탐색하는 데 사용됩니다.

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,&#39;<br />&#39;;
}
?>

예제 실행 출력:

18
20
25

배열 키 값 사용

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $key=>$age) {
    echo $key,&#39;: &#39;,$age,&#39;<br />&#39;;
}
?>

예제 실행 출력:

wang: 18
li: 20
zhang: 25

Tips

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,&#39;<br />&#39;;
}
// 输出原数组
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,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>

예제 실행의 출력:

18
20
25
Array ( [wang] => 28 [li] => 30 [zhang] => 35 )

Traverse array

구문 구조는

1차원 배열을 순회하는 데에만 사용할 수 있습니다. 다차원 배열을 순회하려면 일반적으로 foreach 중첩 재귀를 사용하거나 원래 배열을 1차원 배열로 나눈 다음 foreach 순회를 수행합니다.

A

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,&#39;<br />&#39;;
        }
    } else {
        echo $age,&#39;<br />&#39;;
    }
}
?>

이 예제 출력 실행:

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
25

Tips

list()를 Each()와 결합하여 배열을 탐색할 수도 있지만 테스트 결과 foreach()만큼 효율적이지 않은 것으로 나타났습니다.

아아아아

위 내용은 foreach 및 for를 사용하여 배열을 반복하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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