2025. 6. 28. 16:30ㆍ프로그램/PHP 초급
📚 PHP 초급 - 4주차 - 04 foreach 문 (배열에 특화)

안녕하세요! PHP 초급 강좌 4주차 마지막 시간입니다. 지난 시간에는 #for, #while, #do-while #반복문에 대해 알아보았는데요. 이번 시간에는 #배열에 특화된 #foreach 문에 대해 자세히 알아보겠습니다.
1. foreach 문이란?

#foreach 문은 #배열이나 #객체의 요소를 #반복하면서 각 요소에 접근할 때 사용하는 #반복문입니다. #for 문이나 #while 문으로도 #배열을 순회할 수 있지만, #foreach 문은 #배열의 모든 요소를 #간결하고 #직관적으로 처리할 수 있도록 설계되어 #배열 작업에 특히 유용합니다.
2. foreach 문의 기본 구조

#foreach 문은 두 가지 형태로 사용할 수 있습니다.
2.1. 값만 가져오기
<?php
foreach (배열 as 값) {
// 각 배열의 값에 대해 실행될 코드
}
?>
이 형태는 #배열의 #각 요소의 #값만 필요할 때 사용합니다. #배열의 첫 번째 요소부터 마지막 요소까지 순서대로 값 변수에 할당되며, #코드 블록이 반복 실행됩니다.
2.2. 키와 값 모두 가져오기

<?php
foreach (배열 as 키 => 값) {
// 각 배열의 키와 값에 대해 실행될 코드
}
?>
이 형태는 #배열의 #인덱스(또는 #키)와 #값 모두 필요할 때 사용합니다. #배열의 첫 번째 요소부터 마지막 요소까지 순서대로 키 변수에 #인덱스(또는 #키)가, 값 변수에 #값이 할당되며, #코드 블록이 반복 실행됩니다.
3. foreach 문 예제
예제 1: 값만 가져와 출력하기
<?php
$fruits = ["사과", "바나나", "딸기"];
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
/*
출력 결과:
사과
바나나
딸기
*/
?>
위 예제는 $fruits #배열의 각 요소를 $fruit 변수에 할당하여 출력합니다.
예제 2: 키와 값 모두 가져와 출력하기
<?php
$student_scores = [
"김철수" => 90,
"이영희" => 85,
"박지민" => 92
];
foreach ($student_scores as $name => $score) {
echo $name . "님의 점수: " . $score . "점<br>";
}
/*
출력 결과:
김철수님의 점수: 90점
이영희님의 점수: 85점
박지민님의 점수: 92점
*/
?>
이 예제는 #연관 배열인 $student_scores의 #키(이름)와 #값(점수)을 각각 $name과 $score 변수에 할당하여 출력합니다.
4. foreach 문 사용 시 주의할 점

- #foreach 문은 #배열이나 #객체에만 사용할 수 있습니다. 다른 데이터 타입에 사용하면 오류가 발생합니다.
- #foreach 문 내부에서 #배열의 요소를 추가하거나 삭제하는 것은 예상치 못한 결과를 초래할 수 있으므로 피하는 것이 좋습니다. #배열을 수정해야 한다면 #for 문이나 다른 방법을 고려해야 합니다.
- #foreach 문은 #배열의 복사본을 만드는 경우가 있어, 매우 큰 #배열을 다룰 때는 성능에 영향을 줄 수 있습니다. 하지만 대부분의 경우 #foreach 문이 가장 효율적이고 가독성이 좋습니다.
이번 시간에는 #PHP의 #foreach 문에 대해 자세히 알아보았습니다. #배열의 요소를 #순회하고 처리하는 데 있어 #foreach 문은 매우 강력하고 편리한 도구입니다.
'프로그램 > PHP 초급' 카테고리의 다른 글
| 📚 PHP 초급 - 5주차: 함수 - 함수 정의 및 호출 (0) | 2025.06.28 |
|---|---|
| 📚 PHP 초급 - 4주차 - 05 break, continue (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 03 for, while, do-while 문 (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 02 switch 문 (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 01 if, else if, else 문: 코드의 흐름을 제어하는 조건문 (0) | 2025.06.27 |