배열을 순회하는 foreach란 무엇입니까?
foreach를 사용하여 배열을 순회할 때 개념이 불분명하여 실수를 저지르는 경우가 많습니다. 다음은 일반적으로 사용되는 foreach 작업에 대한 간략한 소개입니다.
(PHP 4, PHP 5, PHP 7)
foreach 구문 구조는 배열을 탐색하는 간단한 방법을 제공합니다. foreach는 배열과 객체에만 적용할 수 있습니다. 다른 데이터 유형의 변수나 초기화되지 않은 변수에 적용하려고 하면 오류 메시지가 표시됩니다.
배열을 순회하는 foreach의 두 가지 구문 :
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
첫 번째 형식은 지정된 array_expression 배열을 순회합니다. 각 루프에서 현재 단위의 값은 $value에 할당되고 배열 내부의 포인터는 한 단계 앞으로 이동합니다(따라서 다음 루프에서 다음 단위를 얻습니다).
두 번째 형식은 동일한 작업을 수행합니다. 현재 유닛의 키 이름이 각 루프의 $key 변수에도 할당된다는 점만 다릅니다.
PHP 5부터는 객체 순회도 가능합니다.
참고: foreach가 실행되기 시작하면 배열 내부의 포인터가 자동으로 첫 번째 유닛을 가리킵니다. 이는 foreach 루프 전에 Reset()을 호출할 필요가 없음을 의미합니다.
참고: 배열이 참조되지 않는 한 foreach는 배열 자체가 아닌 지정된 배열의 복사본에서 작동합니다. foreach에는 배열 포인터에 몇 가지 부작용이 있습니다. 재설정되지 않는 한 foreach 루프 도중이나 이후에 배열 포인터 값을 사용하지 마세요.
PHP 5부터는 $value 앞에 &를 추가하여 배열 요소를 쉽게 수정할 수 있습니다. 이 방법은 값을 복사하는 대신 참조로 할당합니다.
<?php header("Content-Type:text/html; charset=utf-8"); $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) unset($value); // 最后取消掉引用 ?>
$value의 참조는 탐색되는 배열을 참조할 수 있는 경우에만 사용할 수 있습니다(예: 변수). 다음 코드는 실행되지 않습니다.
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
참고: 배열의 마지막 요소에 대한 $value 참조는 foreach 루프 후에도 계속 유지됩니다. 이를 파기하려면 unset()을 사용하는 것이 좋습니다. foreach는 "@"을 사용하여 오류 메시지를 표시하지 않는 기능을 지원하지 않습니다.
다음은 php foreach가 배열을 순회하는 예입니다
1. 순회할 배열은 1차원입니다. 비교적 간단한 배열입니다. 단일 배열인 경우 다음과 같이 두 가지 방법을 사용하여 표시합니다.
<?php header("Content-Type:text/html; charset=utf-8"); $array = array("PHP中文网","百度","搜狗","www.php.cn"); foreach ($array as $value){ echo $value."<br>"; } echo "<br>"; foreach ($array as $key =>$value){ echo $key."--".$value."<br>"; } ?>
출력 결과는 다음과 같습니다.
2. 1차원 연관 배열의 경우 다음과 같이 표시됩니다. 키 값이 다르다는 점에 유의하세요.
<?php header("Content-Type:text/html; charset=utf-8"); $array = array("网站1"=>"PHP中文网","网站2"=>"百度","网站3"=>"搜狗","网址"=>"www.php.cn"); foreach ($array as $value){ echo $value."<br>"; } echo "<br>"; foreach ($array as $key =>$value){ echo $key."--".$value."<br>"; } ?>
순회 결과는
3. 2차원 배열을 순회할 때 조금 번거롭다. 한 점, 이때 값이 배열인데, 이로부터 배열을 연산하는 다양한 방법을 도출할 수 있다. 먼저 기본 2차원 배열을 순회해 보겠습니다.
<?php header("Content-Type:text/html; charset=utf-8"); $array = array( array("1","PHP中文网"), array("2","www.php.cn"), array("3","百度"), array("4","搜狗") ); foreach ($array as $value){ print_r($value); echo "<br>"; } ?>
순회 결과는 다음과 같습니다.
두 번째 방법을 사용하면 배열을 순회할 때 지불 키 값에 주의하세요. 배열 ID 값과 혼동하지 마세요.
<?php header("Content-Type:text/html; charset=utf-8"); $array = array( array("1","PHP中文网"), array("2","www.php.cn"), array("3","百度"), array("4","搜狗") ); foreach ($array as $key =>$value){ echo "key =".$key."<br>"; print_r($value); echo "<br>"; } ?>
순회 결과는 다음과 같습니다.
2차원 배열의 특정 열을 1차원 배열로 변환해 달라는 요청이 종종 있는데, 이때 값에서 해당 필드를 빼내어 1차원 배열로 배치해야 합니다. for 루프를 사용하면 foreach를 사용하는 것이 더 간단합니다. 다음과 같이 각각 1차원 배열에 저장된 id 열과 name 열을 가져옵니다. 결과는 다음과 같습니다.
[관련 튜토리얼 추천]
1. 추천 관련 주제: "
php 배열(배열)" 2. 추천 관련 비디오 강좌: "
foreach 루프를 사용하여 순회: 인덱스 및 연관 배열 》
위 내용은 PHP 배열에서 foreach 배열 순회 사용 예에 대한 자세한 설명(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!