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 있어야만 연관 배열을 반복할 수 있다는 것을 기억해 두자.