소개
foreach 문은 PHP에서 제공하는 반복 구조 중 하나입니다. 다른 루프 문 - while, do while 및 for -는 조건부 또는 계산 루프를 형성하는 데 사용됩니다. 반면에 foreach 루프는 배열 구조를 반복할 때 매우 편리합니다. foreach 문의 사용법은 다음과 같습니다 -
구문
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
foreach의 첫 번째 형식은 인덱싱된 배열의 요소를 반복합니다. 각 반복에서 $value 변수는 배열의 현재 요소로 설정됩니다. PHP는 배열의 끝에 도달할 때까지 다음 요소로 이동하여 내부 포인터를 추적합니다. 각 요소의 값은 foreach 문 다음에 오는 루프 본문에 의해 처리됩니다.
두 번째 형식은 연관 배열의 순회에 적합합니다. 모든 반복은 $key 및 $value 변수에 있는 현재 요소의 압축을 풉니다. 루프의 본문이 처리된 후 배열 포인터는 배열이 소진될 때까지 다음 키-값 쌍으로 진행됩니다.
다음 예제는 foreach 루프를 사용하여 인덱스 배열을 탐색합니다.
예시
<?php $arr = array(2,4,6,8,10); foreach ($arr as $i){ echo $i . "*2=" . $i*2 . "\n"; } ?>
출력
이것은 다음 결과를 생성합니다 -
2*2=4 4*2=8 6*2=12 8*2=16 10*2=20
다음 예는 foreach 루프를 사용한 연관 배열 순회를 보여줍니다.
예시
<?php $arr = array("Phy"=>50, "Che"=>60, "Maths"=>70, "Bio"=>80); foreach ($arr as $sub=>$marks){ echo "marks in $sub: " . $marks . "\n"; } ?>
출력
이것은 다음 결과를 생성합니다 -
marks in Phy: 50 marks in Che: 60 marks in Maths: 70 marks in Bio: 80
중첩된 foreach 루프를 사용하여 2차원 배열을 탐색합니다.
예시
<?php $arr1=[1,2,3,4,5]; $arr2=[6,7,8,9,10]; $twodim=[$arr1,$arr2]; foreach ($twodim as $row){ foreach ($row as $col){ echo $col . " "; } echo "\n"; } ?>
출력
이것은 다음 결과를 생성합니다 -
1 2 3 4 5 6 7 8 9 10
예시
다음 예에서는 연관 배열의 2차원 배열을 탐색합니다.
예시
<?php $arr1=["rno"=>1, "name"=>"Kiran", "marks"=>50]; $arr2=["rno"=>2, "name"=>"anil", "marks"=>60]; $arr3=["rno"=>3, "name"=>"Bina", "marks"=>70]; $twodim=[$arr1,$arr2, $arr3]; foreach ($twodim as $row){ foreach ($row as $k=>$v){ echo $k . ":" . $v . " "; } echo "\n"; } ?>
출력
이것은 다음 결과를 생성합니다 -
rno:1 name:Kiran marks:50 rno:2 name:anil marks:60 rno:3 name:Bina marks:70