2022. 9. 6. 04:13ㆍProgram/PHP
032_PHP foreach() 반복문 사용하기
[요약]
- foreach() 반복문을 사용하면 초기값, 조건, 증감식을 사용하지 않아도 된다.
foreach는 배열을 다루기에 편리한 반복문이다.
[foreach 문 사용 방법]
foreach(배열 변수 as 배열의 값을 대입할 변수) {
배열의 값을 대입할 변수 사용
}
다음은 회원의 이름을 담고 있는 배열이다.
$memberList = ['마이클', '마돈나', '디카프리오', '마릴린'];
for문을 이용해서 출력한다면 다음과 같이 작성하게 될 것이다.
$memberListCount = count($memberList) - 1;
for ($i = 0; $i <= $memberListCount; $i++) {
echo $memberList[$i].'<br>';
}
foreach문을 사용하면 다음과 같이 더 적은 코드로 이름을 출력할 수 있다.
foreach($memberList as $ml) {
echo $ml.'<br>';
}
다음은 foreach 문을 활용한 예제이다.
[예제: 33-1_foreach.php ]
<?php
$monsterList = ['피카츄', '파이리', '괴력몬', '펄기아'];
foreach ($monsterList as $ml) {
echo $ml;
echo '<br>';
}
?>
실행결과
배열의 인덱스가 숫자가 아닌 문자로 된 배열을 처리하는 방법에 대해 알아보자.
다음과 같이 이름과 이메일 정보가 있는 배열이 있다.
$menuList[0] = ['menu'=>'핫도그', 'price'=>'500원'];
배열의 정보를 foreach를 사용해 출력하려면 다음과 같다.
foreach($menuList as $ml) {
echo '메뉴 : '.$ml['menu'];
echo '가격 : '.$ml['price'];
}
변수 ml에 출력할 배열의 인덱스도 함께 명시한다.
다음의 예제를 통해서 결과를 확인해보자.
[예제: 33-2_foreach.php ]
<?php
$menuList[0] = ['menu' => '핫도그', 'price' => '500원'];
$menuList[1] = ['menu' => '떡볶이', 'price' => '1000원'];
$menuList[2] = ['menu' => '김밥', 'price' => '1500원'];
$menuList[3] = ['menu' => '순대', 'price' => '2000원'];
foreach ($menuList as $ml) {
echo "메뉴 : " . $ml['menu'];
echo "<br>";
echo "가격 : " . $ml['price'];
echo "<br><br>";
}
?>
실행결과
배열의 인덱스를 출력하는 방법에 대해 알아보자.
[foreach문에서 배역의 인덱스를 가져오는 방법]
$menuList = ['menu'=>'핫도그', 'price'=>'500원'];
foreach(배열 as 인덱스를 대입할 변수 => 값을 대입할 변수) {
}
인덱스를 대입할 변수의 이름을 index라고 하면 배열 menuList에 사용된 인덱스인 menu와 price가 순차적으로 대입된다.
또한 값을 대입할 변수의 이름이 value라고 하면 값인 '핫도그'와 '500원'이 변수 value에 순차적으로 대입된다.
다음의 예제를 통해 결과를 확인해보자.
[예제: 33-3_foreach.php ]
<?php
$menuList = ['menu' => '핫도그', 'price' => '500원'];
foreach ($menuList as $index => $value) {
echo "인덱스 {$index}의 값 : {$value}";
echo "<br>";
}
?>
실행결과
[예제 33-2]에서 사용된 다음의 데이터에서 배열의 인덱스 값을 가져오는 방법에 대해 알아보자.
$menuList[0] = ['menu' => '핫도그', 'price' => '500원'];
위의 배열 데이터를 보면 인덱스 0임을 알 수 있으며, 값은 배열로 되어있는것을 알 수 있다.
값 또한 배열이므로 foreach를 한번 더 사용하여 인덱스와 값에 접근해야 한다.
foreach($menuList as $index => $value) {
foreach($value as $idx => $val) {
echo "인덱스 {$idx} 의 값 : {$val}";
echo "<br>";
}
}
첫번째 코드에서 변수 index의 값은 0이 되며, 변수 value의 값은 ['menu'=>'핫도그', 'price'=>'500원']이다.
안쪽의 foreach문에서 변수 value를 대상으로 하여 변수 idx에는 'menu', 'price'가 순차적으로 대입되며,
변수 val에는 '핫도그', '500원'이 순차적으로 대입된다.
다음의 예제를 통해서 결과를 확인해보자.
[예제: 33-4_foreach.php ]
<?php
$menuList[0] = ['menu' => '핫도그', 'price' => '500원'];
$menuList[1] = ['menu' => '떡볶이', 'price' => '1000원'];
$menuList[2] = ['menu' => '김밥', 'price' => '1500원'];
$menuList[3] = ['menu' => '순대', 'price' => '2000원'];
foreach ($menuList as $index => $value) {
foreach ($value as $idx => $val) {
if ($idx == "menu") {
echo "{$val}의 가격은 : ";
}
if ($idx == "price") {
echo "{$val} 입니다.";
}
}
echo "<br><br>";
}
?>
실행결과
초보자를 위한 PHP 200제
김태영 지음 | 정보문화사
'Program > PHP' 카테고리의 다른 글
[PHP] do-while 반복문 사용하기 (0) | 2022.09.06 |
---|---|
[PHP] while 반복문 사용하기 (0) | 2022.09.06 |
[PHP] for 반복문 내에서 for 반복문 사용하기 (1) | 2022.09.05 |
[PHP] 반복문에서 스킵문 사용하기 continue; (1) | 2022.09.05 |
[PHP] 반복문에서 빠져나오기 break; (0) | 2022.09.05 |