반복문
- while
- do-while
- for
- foreach
foreach를 제외하고 모두 기존 언어와 방식이 같으니 foreach만 다뤄보도록 하곘다.
foreach(배열 as 임시변수){
명령문 방식으로 진행하면 된다
}
<html>
<body>
<?php
$arr = array(1, 2, 3, 4, 5);
foreach($arr as $a){
echo $a;
}
echo "<br>".$a;
unset($a);
?>
</body>
</html>
차이가 있다면 foreach안에서 임시변수는 사라지지 않고 남아있기 떄문에
unset을 통해 해제시켜주는것이 좋다.
배열
일반 배열
$arr = array() 방식으로 생성하거나 생성과 동시에 초기화 또한 가능하다.
<html>
<body>
<?php
$arr = array();
$arr[0] = "치킨";
$arr[1] = "삼겹살";
$arr[2] = "마라탕";
for($i = 0; $i<3; $i++){
echo "{$arr[$i]}";
}
echo "<br>";
$arrTwo = array("돈까스", "참치마요", "김치찌개");
for($i = 0; $i<3; $i++){
echo "{$arrTwo[$i]}";
}
?>
</body>
</html>
배열의 홀
<html>
<body>
<?php
$arr = array();
$arr[10] = "chicken";
?>
</body>
</html>
위와가이 배열의 요소가 존재하는건 10번째 인덱스 뿐이며 나머지 인덱스에는 배열요소가 존재하지 않는다
이렇게 인덱스에 대응하는 배열 요소가 없는 부분을 배열의 홀 이라고 한다.
이런 배열의 홀을 참조하면 NULL을 반환한다
<html>
<body>
<?php
$arr = array();
$arr[10] = "chicken";
echo count($arr); //1출력
for($i=0; $i< count($arr); $i++){
// 정상동작하지 않는다
}
?>
</body>
</html>
위와같이 $arr의 갯수를 출력하면 1이 출력되게 된다.
따라서 배열에 홀이 존재한다면 해당 문제를 해결하기 위해서는 foreach를 사용해야한다.
<html>
<body>
<?php
$arr = array();
$arr[10] = "chicken";
echo count($arr);
foreach($arr as $a){
echo $a;
}
?>
</body>
</html>
2차원 배열
<html>
<body>
<?php
$arr = array(array(), array(), array());
$arr[0][0] = "치킨";
$arr[0][1] = "마라탕";
$arr[1][0] = "돈까스";
$arr[1][1]= "삼겹살";
for($y = 0; $y<2; $y++){
for($x = 0; $x<2; $x++){
echo $arr[$y][$x];
}
}
?>
</body>
</html>
연관 배열
숫자 뿐만이 아니라 문자열도 배열요소의 인덱스로 사용
$배열이름["키"] = 값;
foreach를 사용해서 순회를 통해 데이터를 출력한다
<html>
<body>
<?php
$arr = array();
$arr['치킨'] = "BBQ";
$arr['마라탕'] = "희래식당";
$array = array("치킨" => "BBQ", "마라탕" =>"희래식당");
foreach($array as $a){
echo $a;
}
echo "<br>";
foreach($arr as $key => $value){
echo "키 : {$key}, 값 : {$value}";
echo "<br>";
}
?>
</body>
</html>
'PHP' 카테고리의 다른 글
PHP + MYSQL 회원가입 / 로그인 구현하기 (24) | 2020.10.09 |
---|---|
php mysql 연동하기 (0) | 2020.10.07 |
PHP 기초 - 변수/상수 (0) | 2020.10.05 |
php.ini 파일 셋팅하기 (0) | 2020.10.05 |
WAMP 설치하기 및 php 실행해보기 (3) | 2020.10.05 |