PHP入門 | 制御構文 | foreach文による配列の繰り返し

繰り返しには、実はもう1つある。それは配列と連想配列のすべての要素を処理するための専用の繰り返し構文である。これは次のような形で記述する。

配列の場合

foreach ($配列 as $変数) {
    ...... 繰り返し処理 ......
}

連想配列の場合

foreach ($配列 as $変数1 => $変数2) {
    ...... 繰り返し処理 ......
}

配列と連想配列では、構文の書き方が少し異なる。

  • 配列では、foreachの後に"$配列 as $変数"のように書く。これにより、繰り返しごとに配列から値を取り出し、asの後にある変数へ代入しながら繰り返し処理を行える。
  • 連想配列の場合は、foreach文に"$変数"の代わりに"$変数 => $変数"という2つの変数を書く。すると、1つ目の変数にキー、2つ目の変数にキーの値がそれぞれ設定される。

以下に簡単な使用例を示す。

<?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が必要であることを覚えておこう。