ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PHP - 배열
    PHP 2018. 2. 9. 08:46

    배열

    배열은 연관된 데이터를 모아서 관리하기 위해서 사용하는 데이터 타입이다.

    변수가 하나의 데이터를 임시로 저장하기 위한 것이라면 배열은 여러 개의 데이터를 저장하기 위한 것이라고 할 수 있다.



    배열의 구조 - 




    문법 - 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    ## 초기화
    $class = array("값1""값2");
    $class2 = ["값1""값2"]; ## 해당 방법은 PHP 5.4 이상에서만 호환되는 문법이다. 가급적 array();를 사용하자.
     
     
    ## 호출
    echo $class[0] . " - " . $class[1];
    echo $class2[0] . " - " . $class[1];
    ?>
     
    cs




    예제 1 -

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $class = array("jamong""icetea");
    $class2 = ["jamong""icetea"];  ## 해당 방법은 PHP 5.4 이상에서만 호환되는 문법이다. 가급적 array();를 사용하자.
     
    echo $class[0] . " - " . $class[1];
    echo "<br />";
    echo $class2[0] . " - " . $class2[1];
     ?>
     
    cs




    예제 2 - 

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    function get_members() {
      return array("jamong""icetea");
    }
     
    var_dump(get_members());
     ?>
     
    cs

    var_dump() : 정수인지 문자열인지 알려주는 함수이다.


    var_dump() 함수를 통해 배열을 확인해보면 그림과 같이 화면이 출력된다.


    array(n) -  배열의 총 길이를 의미한다.

    [n] - 배열의 인덱스를 의미한다.

    dataType(n) - 값의 데이터 타입과 데이터의 길이를 의미한다.

    "value" - 값을 의미한다.






    배열과 반복문의 활용

    배열의 값을 가져와 활용하려면 반복문과 활용했을 때 최고의 궁합이라 할 수 있다.




    예제 1 -

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function get_members() {
      return array("jamong""icetea""tasty");
    }
     
    $members = get_members();
     
    ## count() : 배열의 길이를 반환해주는 함수이다.
    for ($i = 0$i < count($members); $i++)
    {
      ## ucfirst() : 문자열의 첫번째 문자를 대문자로 치환해주는 함수이다.
      echo ucfirst($members[$i] . "<br />");
    }
     
     ?>
     
    cs

    해당 코드를 보자.

    2번 줄 - get_members()라는 이름으로 함수를 정의하였다. 이 함수는 3의 길이를 갖는 배열을 리턴하는 기능을 가지고 있다.

    6번 줄 - members라는 변수에 함수를 호출하여 배열을 저장했다. 이는 다음의 코드와 동일하다.

    1
    2
    3
    4
    <?php
    $members = array("jamong""icetea""tasty");
     
     ?>
    cs

    9번 줄 - 배열에 있는 원소(값)들을 뽑아내기 위해서 반복문을 사용했다. i값이 members배열의 길이만큼 증가하는 조건을 가지고 있다.

    12번 줄 - 반복문이 수행될 때 마다 화면에 배열의 인덱스 0번부터 마지막 번호까지 순회하며 값을 뽑아내게 된다.




    해당 코드를 실행하면 위의 그림과 같은 결과가 화면에 출력된다.






    배열의 조작

    만들어진 배열에 값을 추가하거나, 삭제하거나, 호출하거나, 이동시키는 등의 조작이 가능하다.





    Push - 

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("a""b""c""d""e");
    array_push($li"f");
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - li라는 배열에 array_push()함수를 이용하여 배열 인덱스의 끝에 f라는 값을 추가했다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.


    화면을 확인하면 배열의 길이가 '1'증가하였고, 배열의 끝에 f라는 값과 인덱스가 추가된 것을 확인할 수 있다.




    Unshift - 

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("a""b""c""d""e");
    array_unshift($li"z");
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - li라는 배열에 array_unshift()함수를 이용하여 배열의 0번째 인덱스에 z라는 값을 추가하였다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.


    array_unshift()함수를 통해 배열 0번째에 z값이 추가되었으며, 기존에 값들의 인덱스가 모두 1씩 증가된 것을 확인할 수 있다.




    Shift - 

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("a""b""c""d""e""z");
    array_shift($li);
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - li라는 배열에 array_shift()함수를 이용하여 배열의 0번째 인덱스의 값을 제거했다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.

    array_shift()함수를 통해 배열 0번째에 있던 a값이 제거되었으며, 기존의 값들의 인덱스가 모두 1씩 감소된 것을 확인할 수 있다.




    Pop -

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("a""b""c""d""e""z");
    array_pop($li);
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - array_pop()함수를 이용하여 배열의 마지막 인덱스의 값을 제거했다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.


    array_pop()함수를 통해 배열 마지막에 있던 z값이 제거되었다.




    Sort - 

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("c""d""b""a");
    sort($li);
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - sort()함수를 이용하여 배열의 값을 순서대로 정리하였다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.


    배열에 초기화한 값의 순서와 다르게 sort()함수를 통해 값이 순서대로 정렬되었다.





    Rsort (ReverseSort) - 

    1
    2
    3
    4
    5
    6
    <?php
    $li = array("c""d""b""a");
    rsort($li);
    var_dump($li);
     ?>
     
    cs

    2번 줄 - li라는 이름으로 배열을 초기화했다.

    3번 줄 - rsort()함수를 이용하여 배열의 값을 역순으로 정리하였다.

    4번 줄 - var_dump()함수를 이용해 배열을 조회하였다.


    배열에 초기화한 값의 순서와 다르게 rsort()함수를 통해 값이 역순으로 정렬되었다.





    참고 : PHP 배열 함수 목록 (공식 홈페이지)






    연관배열

    일반적인 배열은 식별자로 숫자(인덱스)를 사용한다.

    PHP에서는 인덱스를 문자로 사용하는 것도 가능하다.




    문법 - 

    1
    2
    3
    4
    5
    6
    <?php
    $arr = array('인덱스명' => 값, '인덱스명' => 값);
     
    var_dump($arr);
     ?>
     
    cs




    예제 1 - 

    1
    2
    3
    4
    5
    6
    7
    <?php
    ## jamong - 인덱스 / 10 - 값
    $arr = array('jamong' => 10'icetea' => 5);
     
    var_dump($arr);
     ?>
     
    cs

    해당 예제를 보자.

    3번 줄에서 arr라는 이름의 변수에 배열을 초기화했다.

    jamong이라는 인덱스 명으로 10이라는 값을 지정했고 icetea라는 인덱스 명으로 5라는 값을 지정했다.


    var_dump()함수를 통해 출력되는 내용을 확인해보자.





    인덱스 명으로 값을 호출하는 방법 - 

    1
    2
    3
    4
    5
    6
    <?php
    $arr = array('jamong' => 10'icetea' => 5);
     
    echo $arr['jamong'];
     ?>
     
    cs

    배열명['인덱스명'] 형식으로 배열 인덱스의 값을 호출할 수 있다.





    배열에 담긴 값들을 열거하는 방법 - 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    ## 배열에 담겨있는 값들을 열거하는 방법
    $arr = array('jamong' => 10'icetea' => 5);
     
    ## 배열의 인덱스가 문자로 구성되어있는 경우,
    ## 숫자(인덱스)로 열거하는 for()문은 사용이 불가능하다.
    ## 따라서 이러한 경우 foreach()문을 사용해서 열거가 가능하다.
    foreach ($arr as $key => $value) {
      ## arr배열의 길이만큼 반복한다.
      ## 인덱스의 명은 $key변수에 담긴다.
      ## 배열의 값은 $value변수에 담긴다.
      echo "key : {$key}, value : {$value} <br />";
    }
     ?>
     
    cs


    foreach()예제 코드를 실행하면 그림과 같은 결과가 출력된다.



    'PHP' 카테고리의 다른 글

    PHP - Composer  (0) 2018.02.09
    PHP - include와 namespace  (0) 2018.02.09
    PHP - 함수  (0) 2018.02.08
    PHP - 반복문 제어  (0) 2018.02.08
    PHP - 반복문  (0) 2018.02.08
Designed by Tistory.