制御構文を覚えよう! (6/6)
作成:2010-12-04 15:43
更新:2010-12-04 15:43
更新:2010-12-04 15:43
■foreachによる配列の繰り返し
繰り返しには、実はもう1つあります。それは、配列や連想配列の全要素を処理するための専用の繰り返し構文です。これは、以下のような形をしています。
連想配列の場合は、foreachの$変数の代わりに「$変数 => $変数」というように2つの変数を記述します。これにより、1つ目の変数にキー、2つ目の変数にそのキーの値がそれぞれ設定されるようになります。
下に簡単な利用例をあげておきます。配列と連想配列を作成し、その中の全要素をまとめて出力するサンプルです。配列と連想配列の全要素がどのようにしてとり出されるのかを見ると、foreachの働きがよく分かります。
このforeachは、配列・連想配列専用の繰り返しです。特に連想配列は番号で値を取り出せないため、通常のforは使えません。foreachあってこその連想配列、と考えておきましょう。
※配列の場合配列と連想配列では、構文の書き方がやや異なります。配列は、foreachの後に「$配列 as $変数」というように記述します。これで、繰り返すごとに配列から値を取り出してasの後にある変数に代入し、繰り返しを行うようになります。
foreach( $配列 as $変数 ){
……繰り返す処理……
}
※連想配列の場合
foreach( $配列 as $変数1 => $変数2 ){
……繰り返す処理……
}
連想配列の場合は、foreachの$変数の代わりに「$変数 => $変数」というように2つの変数を記述します。これにより、1つ目の変数にキー、2つ目の変数にそのキーの値がそれぞれ設定されるようになります。
下に簡単な利用例をあげておきます。配列と連想配列を作成し、その中の全要素をまとめて出力するサンプルです。配列と連想配列の全要素がどのようにしてとり出されるのかを見ると、foreachの働きがよく分かります。
このforeachは、配列・連想配列専用の繰り返しです。特に連想配列は番号で値を取り出せないため、通常のforは使えません。foreachあってこその連想配列、と考えておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php
$arr1 =array("Hello","Welcome","Hi");
$result1 = "";
foreach($arr1 as $item){
$result1 .= $item . " ";
}
$arr2 = array("ja"=> "いち","en"=>"one","fr"=>"une");
$result2 = "";
foreach($arr2 as $key=>$val){
$result2 .= $key . ":" . $val . " ";
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
<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>
※関連コンテンツ