foreach文の使い方

foreachは配列の要素を取り出す時に使うループ処理で、配列の要素の数分、繰り返し処理をします。構文の書き方は一次元配列のvalueの取り出しと、連想配列のkeyとvalueの取り出し、2種類あります。

//一次元配列のvalueの取り出し
foreach ($array as $value){
  実行処理
}

//連想配列のkeyとvalueの取り出し
foreach ($array as $key => $value){
  実行処理
}

まず、一次元配列でvalueを表示します。

<?php
$items = array('トマト','キャベツ','ピーマン','レタス');

foreach ($items as $value){
  echo $value. '<br>';
}
?>

実行結果は以下になります。

トマト
キャベツ
ピーマン
レタス

一次元配列でkeyとvalueを表示します。

<?php
$items = array('トマト','キャベツ','ピーマン','レタス');

foreach ($items as $key => $value){
  echo 'key:' .$key. '、value:' .$value. '<br>';
}
?>

実行結果は以下になります。一次元配列の場合、keyには0から始まる添字がセットされているのがわかります。

key:0、value:トマト
key:1、value:キャベツ
key:2、value:ピーマン
key:3、value:レタス

なお、配列にkey(0から始まる添字)でアクセスすれば、該当のvalueが表示できます。

<?php
$items = array('トマト','キャベツ','ピーマン','レタス');
echo $items[0];
?>

//実行結果
トマト

次に、連想配列でvalueを表示します。

<?php
$list = array(
  'トマト' => 100,
  'キャベツ' => 120,
  'ピーマン' => 80,
  'レタス' => 90
);

foreach ($list as $value){
  echo $value. '<br>';
}
?>

実行結果は以下になります。keyはechoしていないので表示されません。

100
120
80
90

連想配列でkeyとvalueを表示します。

<?php
$list = array(
  'トマト' => 100,
  'キャベツ' => 120,
  'ピーマン' => 80,
  'レタス' => 90
);

foreach ($list as $key => $value){
  echo 'key:' .$key. '、value:' .$value. '<br>';
}
?>

実行結果は以下になります。

key:トマト、value:100
key:キャベツ、value:120
key:ピーマン、value:80
key:レタス、value:90

なお、連想配列にkey(文字列)でアクセスすれば、該当のvalueが表示できます。

<?php
$list = array(
  'トマト' => 100,
  'キャベツ' => 120,
  'ピーマン' => 80,
  'レタス' => 90
);
echo $list['トマト'];
?>

//実行結果
100

foreach内でcontinueを使うと現在のループの残りの処理をスキップし、次のループの処理へ移ることができます。

<?php
$list = array(
  'トマト' => 100,
  'キャベツ' => 120,
  'ピーマン' => 80,
  'レタス' => 90
);

foreach ($list as $key => $value){
  if($key == 'ピーマン') {
    continue;
  }
  echo 'key:' .$key. '、value:' .$value. '<br>';
}
?>

実行結果は以下になります。

key:トマト、value:100
key:キャベツ、value:120
key:レタス、value:90

また、foreach内でbreakを使うとループを終了することができます。

<?php
$list = array(
  'トマト' => 100,
  'キャベツ' => 120,
  'ピーマン' => 80,
  'レタス' => 90
);

foreach ($list as $key => $value){
  if($key == 'ピーマン') {
    break;
  }
  echo 'key:' .$key. '、value:' .$value. '<br>';
}
?>

実行結果は以下になります。

key:トマト、value:100
key:キャベツ、value:120
タイトルとURLをコピーしました