本記事では、ループ文を簡潔に記述することが出来るforeach文の使い方・書き方について解説しています。
PHPの学習におすすめ書籍
独習PHP 第4版

メリット
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード


メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)


目次
foreachとは
foreachとは、配列やオブジェクトを繰り返し処理することができる便利な文です。PHPで代表的な繰り返し処理といえば、for文ですが条件式の記述や配列の添字をわざわざ書く必要があり記述量が多いです。
しかし、foreachはfor文と全く同じ処理を少ない記述量で実装することが出来ます。今まで繰り返し処理をfor文で記述している人がいるならforeach文で記述することをオススメします。
foreachの使い方・書き方
それでは本題のforeach文の使い方・書き方について見ていきましょう。
<?php
$arr = ['データ1', 'データ2', 'データ3'];
foreach($arr as $value){
// 処理を記述
}
?>
foreachの使い方
- $arr:対象となる配列を渡します。
- $value:$arr内に格納されているデータが一つずつ$valueに代入されます。
for文のように「0〜配列の長さ -1」までの値を使いたい場合は、以下のように記述します。
<?php
$arr = ['データ1', 'データ2', 'データ3'];
foreach($arr as $i => $value){
// 処理を記述
}
?>
値の取得
- $i:配列の添字が代入されます。
下記のサンプルコードでは、配列のデータを全て取得する処理を実装しています。for文と違いが分かるようにfor文を使って実装したコードとforeach文を使って実装したコードの両方を記載しています。
<?php
$fruits_arr = ['リンゴ', 'バナナ', 'ブドウ'];
foreach($fruits_arr as $i => $fruits){
print_r("配列の[${i}]番目目:$fruits");
}
for($i = 0; $i < count($fruits_arr); $i++){
print_r("配列の[${i}]番目:$fruits_arr[$i]");
}
?>


配列のデータが全て取得できていることが確認できました。