본문 바로가기

PHP

PHP 반복문/ 배열

반응형

반복문

  • 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