foreach (iterable_expression as $value) {
    // $valueを使った繰り返し処理のコード
}
$fruits = ['apple', 'banana', 'orange'];

foreach ($fruits as $value) {
    echo $value . '<br>';
}
配列またはオブジェクトの値のみを取得して繰り返し処理を行う構文 - 実行結果
foreach (iterable_expression as $key => $value) {
    // $keyと$valueを使った繰り返し処理のコード
}
$fruits = [
    'apple' => 'red',
    'banana' => 'yellow',
    'orange' => 'orange'
];

foreach ($fruits as $key => $value) {
    echo '果物: ' . $key . ', 色: ' . $value . '<br>';
}
配列またはオブジェクトのキーと値の両方を取得して繰り返し処理を行う構文 - 実行結果
<?php foreach (iterable_expression as $value): ?>
    <?php // 実行するコードブロック ?>
<?php endforeach; ?>
<?php foreach (iterable_expression as $key => $value): ?>
    <?php // 実行するコードブロック ?>
<?php endforeach; ?>
$fruits = ['apple', 'banana', 'orange'];

$searchValue = 'banana';
$searchIndex = -1;

foreach ($fruits as $index => $value) {
    if ($value === $searchValue) {
        $searchIndex = $index;
        $found = true;
    }
}

if ($searchIndex !== -1) {
    echo "インデックス " . $searchIndex . " で '" . $searchValue . "' の値を見つけました。";
} else {
    echo "'" . $searchValue . "' の値は見つかりませんでした。";
}

// 出力: "インデックス 1 で 'banana' の値を見つけました。"
$fruits = ['apple', 'banana', 'orange'];

$lastIndex = null;

foreach ($fruits as $index => $value) {
    $lastIndex = $index;
}

if ($lastIndex !== null) {
    echo '最後のインデックス: ' . $lastIndex;
} else {
    echo '配列が空です。';
}

// 出力: '最後のインデックス: 2'
$person = [
    'name' => 'John',
    'age' => 30,
    'occupation' => 'Engineer',
    'country' => 'USA'
];

echo '個人情報:<br>';

foreach ($person as $key => $value) {
    echo ucfirst($key) . ': ' . $value . '<br>';
}
結果の出力
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

echo '偶数:<br>';

foreach ($numbers as $number) {
    if ($number % 2 === 0) {
        echo $number . '<br>';
    }
}
結果の出力
class Person {
    public $name;
    public $age;
    public $occupation;

    public function __construct($name, $age, $occupation) {
        $this->name = $name;
        $this->age = $age;
        $this->occupation = $occupation;
    }
}

$person = new Person('John', 30, 'Engineer');

foreach ($person as $key => $value) {
    echo ucfirst($key) . ': ' . $value . '<br>';
}
結果の出力
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

echo '最初の偶数を探します:<br>';

foreach ($numbers as $number) {
    if ($number % 2 === 0) {
        echo '最初の偶数: ' . $number . '<br>';
        break;
    }
}
結果の出力
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

echo '偶数のみを出力する:<br>';

foreach ($numbers as $number) {
    if ($number % 2 !== 0) {
        continue;
    }
    echo $number . '<br>';
}
結果の出力
$numbers = [1, 2, 3, 4, 5];
$newNumbers = [];

// 既存の配列の値に1を加えて新しい配列に格納
foreach ($numbers as $number) {
    $newNumbers[] = $number + 1;
}

// 新しい配列のデータを出力
foreach ($newNumbers as $number) {
    echo $number . '<br>';
}
結果の出力
// 既存の配列データ
$studentsData = [
    ['name' => 'John', 'age' => 25, 'score' => 85],
    ['name' => 'Alice', 'age' => 23, 'score' => 90]
];

// 空の連想配列(二次元配列)を作成
$students = [];

// データの追加および格納
foreach ($studentsData as $student) {
    $students[] = $student;
}

// 新しいデータを追加
$students[] = ['name' => 'Bob', 'age' => 22, 'score' => 78];

// foreach() ループでデータを出力
foreach ($students as $student) {
    echo 'Name: ' . $student['name'] . ', Age: ' . $student['age'] . ', Score: ' . $student['score'] . '<br>';
}
結果の出力
$numbers = [1, 2, 3, 4, 5];

// foreach() ループで &$value を使い配列の要素を変更
foreach ($numbers as &$value) {
    $value = $value * 2;
}

// 変更された配列を出力
foreach ($numbers as $number) {
    echo $number . '<br>';
}
結果の出力