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>';
}
배열 또는 객체의 키와 값 모두를 가져와서 반복 작업을 수행하는 구문 - 예제 결과
$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]
];

// 빈 연관 배열(2차원 배열) 생성
$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>';
}
결과 출력