PHP - 配列をループする際に使えるforeach

PHP

PHPのforeachは、配列をループする際に使える便利な関数です。

foreachが使えるのは配列とオブジェクトのみとなっていて、別の変数に使うとエラーとなります。

■foreach - php.net
 

foreachでは、配列と連想配列に対して使用する2種類の書き方があります。
※この書き方であっているか調査中です。後日表現を変える可能性ありです。

 

配列に対して使用する foreach ($array as $value) {}

※$arrayは配列です。

<?php
	$array = array("東京", "神奈川", "千葉", "埼玉");

	foreach ($array as $value) {
		echo $value . "<br />";
	}

 

■実行結果

東京
神奈川
千葉
埼玉

こんな書き方もよくやります。

<?php
	$array = array("東京", "神奈川", "千葉", "埼玉");
	$i = 0;

	foreach ($array as $value) {
		if($i === 0) {
			echo "<strong>まだ" . $value . "で消耗しているの?</strong><br />";
		} else {
			echo $i . ': ' . $value . "<br />";

			// こんなふうに書いても変数が展開されます↓
			// echo "{$i}: {$value}<br />";
		}

		$i++;
	}

 

■実行結果

まだ東京で消耗しているの?
1: 神奈川
2: 千葉
3: 埼玉

連想配列に対して使用する foreach ($array as $key => $value) {}

※$arrayは連想配列です。$keyは連想配列のキー、$valueは要素の値となります。

<?php
	$array = array(
		"tokyo"    => "東京",
		"kanagawa" => "神奈川",
		"chiba"    => "千葉県",
		"saitama"  => "埼玉県"
	);

	foreach($array as $key => $value){
		if($key == 'saitama') {
			echo $value . "には海がありません(´・ω・`)" . "<br />";
		} else {
			echo $value . "には海があります。" . "<br />";
		}
	}

 

■実行結果

東京には海があります。
神奈川には海があります。
千葉県には海があります。
埼玉県には海がありません(´・ω・`)

無事に連想配列でも動作しました。
 

最後に

foreachを使うと、配列の回数分でしかループしないので、forやwhile文に比べると、初心者が無限ループに陥ることが少ないですよね。

配列の数があまりにも多いような場合は、1回ループを実行したらprint_rして中身を確認してみる、特定の回数でbreakしてループを抜けてみるなど、慎重に処理したいところですね。

以上、foreach文の紹介でした!

プロから直接学べるプログラミングスクールの紹介!PHPコースあり!

自己流でプログラミングを覚えようとすると、環境設定でつまづく、書いたプログラムがなぜ動かないか解決できず、多大な時間を浪費してしまいがちです。

担当の指導者(メンター)が付いてくれるTechAcademyなら、分からないことをどんどん質問して解決できます!コードレビューしてもらえるのも素晴らしい点ですね。

【TechAcademy】家で学べるプログラミングスクール

Web制作会社が立ち上げたWebデザイナー育成スクール Web塾超現場主義

Web制作に実際に携わっている講師陣が、現場で通用するスキルを伝授します!卒業後は転職支援、仕事紹介などを行っており、フリーランス独立する道を探すこともできそうです。

また「独立・開業はちょっと...」という方へは、当社の制作案件をお手伝いして頂く道も開けます。
Facebookアカウントでコメント

※本コメント機能はFacebookによって提供されており、この機能によって生じた損害に対してザ サイベースは一切の責任を負いません。

PHP

ABOUTこの記事を書いた人

とみっち

埼玉でザ サイベースを主催しています。Webクリエイター。フリーランス歴7年。飄々と生きています。これでも育児頑張ってます。長野市出身。 @tomicci 詳しいプロフィール【興味】ギター/DTM/Web/車/田舎/旅/酒/育児 自然の音からデスメタルまで聴きます。【運営サイト】 ザ サイベース おと風景