본문 바로가기
테크노트/PHP

웹개발 - PHP 문법 배열편

by 테크한스 2021. 11. 15.

(1) 배열 (array)

  1) 배열 사용법

$배열이름 = array();

- PHP의 배열은 간단하게 array() 형태로 사용하는 것이 전부이다.

- 배열(array) 인덱스는 0 부터이다.

	//1. 문자열 배열
	$username = array("kim","lee","park");
	echo $username[2];
	echo "<br>";

(결과)

park


 

  2) 배열 접근법

    배열로 값을 접근할 때는 for구문이나 foreach구문을 사용해서 배열 데이터를 접근

    $sample3 = array(3,4,2,5,1);
    foreach($sample3 as $value){
        echo $value;
    }
    $sample33 = array(11,22,33,44,55);
    for($i=0;$i<count($sample33);$i++){
        echo $sample33[$i];
        echo "<br>";
    }

  PHP는 배열(array) 요소로 접근시에는 foreach 구문을 사용하는 것이 맞습니다.

  PHP의 count 내장함수는 배열의 전체 길이(length)가 아닌 실제 존재하는 요소의 수를 리턴하기 때문인데요

  만약에 배열의 요소중 일부가 비어있다면 자신이 원하지 않는 결과가 나올 수 있어서 주의해야 합니다.

   (예제)

    $ar = array();

    $ar[1] = "A";
    $ar[3] = "B";
    $ar[4] = "C";

    echo "<br>";
    echo count($ar); // 3

    for($i=0;$i<count($ar);$i++){
        echo $ar[$i];
        echo "<br>";
    }

   (결과)  A 

   

    이와 같이 결과는 ABC 가 아닌 A 만 출력되고 끝나게 됩니다. 왜냐하면 count는 3 이며 index 0, 1, 2 까지만 카운트      하고 끝나기 때문이죠

 

    이런 경우를 대비해서 배열(array)의 요소값에 접근시에는 for문 보다는 foreach문을 사용해야 안전합니다.

   

    $ar = array();

    $ar[1] = "A";
    $ar[3] = "B";
    $ar[4] = "C";

    
    echo "<br>";
    foreach($ar as $value){
        echo $value;

    }

  (결과)  ABC 

     

 


   3) 배열 조작법

    PHP에서의 배열법은 리스트 형태로서의 배열(array) 이기 때문에 요소에 접근하거나 정렬하는 등

    배열과 관련된 내부함수를 제공하고 있습니다.

     

    우선 배열(array)에 값을 ABC 입력해 보겠습니다.

    $ar = array("A","B","C");
    foreach($ar as $value){
        echo $value;
        echo "<br>";
    }

        3.1) array_push     

      배열 A B C 뒤에 D를 추가해 보겠습니다.

    array_push($ar,"D");

         결과는 A B C D 인것을 확인할 수 있습니다

   

      3.2) array_merge

        배열 뒤에 특정의 배열 요소를 추가할 경우에 사용하며 리턴 값을 배열(array)로 받는 것을 주의   

    $ar = array_merge($ar,["E","F"]);

          결과는 A B C E F

 

      3.3) array_unshift 

         배열 요소들 중에서 가장 앞에 추가하는 경우 사용

    array_unshift($ar, "1");

          결과는 1 A B C D E F

 

      3.4) array_slice

           배열의 요소중에서 X번째 인덱스 부터 Y번째 인덱스까지 특정 요소로 대체   

    array_splice($ar, 2, 4, "3");

          결과는 1 A 3 E F

 

      3.5) array_shift

          배열 요소들중에 맨 앞에 있는 요소 제거         

    array_shift($ar);

         결과는 A 3 E F 

 

      3.6) array_pop

          배열 요소들중에 맨 마지막 요소를 제거

    array_pop($ar);

         결과는 A 3 E

 

      3.7) sort 

          배열 전체를 소트한다. 오름차순 정렬           

    sort($ar);

         결과는 3 A E

 

      3.8) rsort

         배열 전체를 역 소트한다. 내림차순 정렬   

    rsort($ar);

         결과는 E A 3 

 

      3.9) is_array

         어떤 변수가 배열인지 확인하는 경우 사용       

    $ar1 = array("Kim","Lee","Park");
    echo is_array($ar1) ? "Array" : "No Array";

      3.10) count

        배열의 요소 갯수를 리턴하는 함수

    $ar1 = array("Kim","Lee","Park");
    echo count($ar1);
    echo "<br>";

      3.11) shuffle

         배열의 요소를 무작위로 섞습니다

    $ar2 = array(1,2,3,4,5);
    shuffle($ar2);
    foreach($ar2 as $value){
        echo $value;
    }

      결과의 순서가 실행할 때 마다 바뀌는 것을 볼 수 있습니다.

 

    


(2) 다차원 배열 

  1) 2차원 배열법

        다차원배열은 2차원 이상의 배열로서 해당 요소에 또 다른 배열(array)를 사용하는 형태

    $배열이름 = array(
        array(),
        array(),
        ...
    );

   (예제)

    $ar1 = array(
        array("1","2","3"),
        array("3","4","5"),
        array("7","8","9")
    );

    echo $ar1[1][1];

  (결과) 4

 

  다차원 배열도 배열 각각의 요소값에 접근하기 위해서는 for문이나 foreach문을 사용하나 foreach문을 추천.

  그것은 key:value 형태의 연관배열의 데이터조합은 foreach문으로 접근하는 것이 용이함

    for($row=0;$row<count($ar1);$row++){
         for($col=0;$col<count($ar1[$row]);$col++){
            echo $ar1[$row][$col];
         } 

    }
    $i=0;
    foreach($ar1 as $value){
        foreach($value as $itemvalue[$i]){
            echo $itemvalue[$i];
        }
        $i++;
    }

(3) 연관 배열 

  1) 기본사용법

    연관배열은 다른언어에서의 HashMap 같은 key:value 스타일의 배열이라고 생각하시면 됩니다.

    만약 정수와 문자열 조합으로 사용하면 내부적으로 정수와 문자열 타입변환이 이루어집니다.

    $배열이름 = array("key1"=>"value1","key2"=>"value2","key3"=>"value3"...);

    $배열이름["key"] = value;

 (예제) 

    $ar = array("A"=>100,"B"=>200);
    $ar["C"] = 300;
    
    foreach($ar as $key => $value){
        echo "$key : $value";
        echo "<br>";
    }

(결과) 

A : 100
B : 200
C : 300

 

위와 같은 key:value 형태의 데이터타입을 사용하며, 출력해 볼 수 있습니다

 

 2) foreach ~ as 구문

 추가로 foreach 구문에서의 활용예제를 보자면

  2.1)  일반배열을 사용한 경우

    $ar1 = array("Kim","Lee","Park");
    $cnt1 = 1;
    foreach($ar1 as $value){
        echo "$cnt1 value is $value";
        echo "<br>";
        $cnt1++;
    }

 2.2) 연관배열을 사용한 경우

    $ar1 = array("1"=>"Kim","2"=>"Lee","3"=>"Park");
    foreach($ar1 as $key => $value){
        echo("$key value is $value");
        echo "<br>";
    }

위의 2.1) 과 2.2)의 결과는 같으나 사용하는 방법은 경우에 따라 각기 사용하면 됩니다

(결과)

1 value is Kim
2 value is Lee
3 value is Park


1 value is Kim
2 value is Lee
3 value is Park

 

 

영상으로 보실분들은 아래 영상을 참조하세요

 

https://youtu.be/Sy7s9A7EvfU

 

 

댓글