PHP 배열의 원리 - array() > php

본문 바로가기
사이트 내 전체검색

php

PHP 배열의 원리 - array()

페이지 정보

작성자 서방님 댓글 0건 조회 98회 작성일 12-06-14 16:52

본문

먼저 PHP의 배열은 모두 associate 배열입니다. (indexed 배열이 아닙니다.)

array() 는 함수인듯하지만 문법입니다.

indexed 배열에는 $a=array(1,2,3,4,5); $b=array("abcd","efgh","hijk"); 와 같은것을 말하고.

associate 배열에는 $A=array("name" => "John", "age" => 25, "hobby" => "Collect"); 와같은 배열을 말합니다.

PHP 배열은 모두 associative 배열이지만, indexed 방식으로도 접근이 가능합니다.


$free[50]=11;

$free[100]=180;

$free[123]="abc";

$free[any]="call";

$free["name"]="Madonna";


이를 보면 알 수 있듯이 PHP 배열은 전부 associate 배열입니다.

그러므로 숫자 50은 배열 인덱스가 아니라 'any'와 같은 key 를 뜻한다는걸 알 수 있습니다.


그러므로 $idx=array("a", "b", "c"); 라고 해도 associate 배열로 정의 돼므로

$idx=array(0=>"a", 1=>"b", 2=>"c"); 라고 인식하므로 index 배열로도 접근이 가능하도록 돼어 있습니다.


이를 이해 했다면 다음과같은 순으로 정의 했을때 foreach 문의 오류를 범하지 않겠죠?!!!!!!!


$free[10]="First";

$free[5]="Second";

$free[12]="Third";

$free[3]="Fourth";


위처럼 정의한 배열은 $free=array("10" => "First", "5" => "Second", "12" => "Third", "3" => "Fourth"); 와 같습니다.

무조건 0부터 12까지의 배열로 착각해서는 안돼겠죠.

배열의 수는 12개가 아닌 4개 이며 foreach 문을 실행 해보면


foreach($free as $value) echo $value." , ";

-> First , Second , Third , Fourth


echo "배열 count: ". count($free);

-> 배열 count: 4


물론 indexed 배열로도 접근이 가능하며 정의돼지않는 $free[3]이나 $free[100], $free[what] 과 같은 값은 에러가 아닌 null 값이죠.


PHP 참 착하죠?


---------------------------------------------------------


활용적 예로 PHP에서는 일반적인 문자열도 배열로 읽어들일 수 있습니다.


$string="abcdefghij";

echo $string[3];


이렇게 하면 3번째 문자 'd' 가 출력 됩니다.


또, 언제든지 배열로 바꿔 사용 할 수 있습니다.

또, indexed 배열처럼 사용 할 수도 있습니다.


$value=1;

for($i=1; $i<100; $i++) $value[$i]=$i++;


그만큼 구속 조건이 융통성이 있어서 쉽고 빠르고 안전하게 프로그래밍이 가능하게 되어 있습니다.

또 배열의 크기가 제각각 달라도 상관 없이 돌아 갑니다.


어지간하면 오류가 없는 참 착한 스크립트입니다.


바로 정의 할때

$a[]=100; 이라함은 "0"=>"100" 을 뜻하고 key 값을 1씩 더하면서 적용합니다.

또는 한꺼번에 $a=array(12,3,'ace', 'duce'); 라고 해도 됩니다.


$ex[3]=13;

$ex[100]="mounting";

$ex[color]="red";

$ex[]="plus";


이렇게하면 key 값은 "3", "100", "color", "101" 순이며

value 값은 "13", "mounting", "red", "plus" 순으로 저장 됩니다.


그러면 가운데 하나 없애볼까요?


unset($ex[color]);


이라고 쓰면 $ex[color]만 없어집니다.



PHP에서의 다차원 배열 또한 융통성 끝내줍니다.


$aa[0]=123;

$aa[1]=456;

$bb[first]=111;

$bb[second]=222;


$dim[2]=$aa;

$dim2[pp]=$bb;


라고하면 $dim[2]와 $dim[pp]는 다차원 배열이 됩니다.

그러므로

echo $dim[2][0];

-> 123

echo $dim2[pp][second];

-> 222

...


이렇게 되죠. 또 다음의


$a= array(

    "apple" => array(

        "color" => "red",

        "taste" => "sweet",

        "shape" => "round"

    ),

    "orange" => array(

        "color" => "orange",

        "taste" => "tart",

        "shape" => "ellipse"

    ),

    "banana" => array(

        "color" => "yellow",

        "taste" => "past",

        "shape" => "long"

    )

);


echo $a[apple][color];

-> red

echo $a[apple][taste];

-> sweet

echo $a[apple][shape];

-> round

......



라는 식으로 사용 합니다.

댓글목록

등록된 댓글이 없습니다.

Total 612건 33 페이지
php 목록
번호 제목 글쓴이 조회 날짜
132 서방님 93 07-18
131 서방님 188 07-18
130 서방님 185 07-18
129 서방님 126 07-18
128 서방님 122 07-17
127 서방님 63 07-17
126 서방님 0 07-10
125 서방님 70 07-03
124 서방님 70 06-22
열람중 서방님 99 06-14
122 서방님 75 06-14
121 서방님 108 06-13
120 서방님 0 06-05
119 서방님 116 05-31
118 서방님 65 05-15
게시물 검색

회원로그인

접속자집계

오늘
16
어제
302
최대
1,347
전체
155,077
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.