php 입문 | 제어 구문 | foreach 문에 의한 배열의 반복
반복은 사실 또 하나가 있다. 그것은 배열과 연관 배열의 모든 요소를 처리하기위한 전용의 반복 구문이다. 이는 다음과 같은 형태로 작성한다.
배열의 경우
foreach ($배열 as $변수) {
...... 반복 처리 ......
}
연관 배열의 경우
foreach ($배열 as $변수1 => $변수2) {
...... 반복 처리 ......
}
배열과 연관 배열은 구문 작성이 약간 다르다.
- 배열은 foreach 후에 “$배열 as $변수"과 같이 작성한다. 이것으로 반복마다 배열에서 값을 꺼내 as 뒤에 있는 변수에 할당하 가면서 반복 처리를 할 수 있다.
- 연관 배열의 경우는 foreach 문에 “$변수” 대신에 “$변수 => $변수"라는 두 가지 변수를 작성한다. 그러면 첫 번째 변수에 키, 두 번째 변수에 키값이 각각 설정된다.
아래에 간단한 사용 예제를 보도록 하겠다.
<?php
$arr1 =array("Hello","Welcome","Hi");
$result1 = "";
foreach($arr1 as $item){
$result1 .= $item . " ";
}
$arr2 = array("ko"=> "하나", "ja"=> "いち","en"=>"one");
$result2 = "";
foreach($arr2 as $key=>$val){
$result2 .= $key . ":" . $val . "<br/>";
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<p><?php echo $result1; ?></p>
<p><?php echo $result2; ?></p>
</body>
</html>
배열과 연관 배열을 만들고 그 안에 모든 요소를 한꺼번에 출력하는 예제이다. 배열과 연관 배열의 모든 요소가 어떻게 해서 얻어 내는지를 보면 foreach의 동작을 알게 될 것이다.
이 foreach는 배열, 연관 배열의 전용 반복 구문이다. 특히 연관 배열은 번호에서 값을 꺼낼 수 없기 때문에 보통의 for는 사용할 수 없다. foreach 있어야만 연관 배열을 반복할 수 있다는 것을 기억해 두자.
최종 수정 : 2021-08-27