본문 바로가기
IT/PHP

php 배열 함수

by Jeami 2013. 7. 14.
반응형



php 배열


php 배열함수 부분입니다.

배열에서 좀 더 심화된 내용이라고 볼 수 있는데, 심화라기보다는 배열의 다른

부분이라고 가볍게 생각하시면 좋을 것 같습니다^^

array_diff(array1, array2)

array1과 array2를 비교하여 array2가 가지고 있지 않은 array1의 값을 출력합니다.

주의 할 점은, array1이 비교대상이 된다는 것입니다.

array2가 가지고 있지만, array1이 가지고 있지 않은 값에 대한 것은 생각하지 않습니다.

array1이 갖고 있는 값중에 array2가 가지고 있지 않은 값을 찾아서 넘겨주는 것이라는 것을 잊지 말아주세요.


foreach(array_expression as $value) 

$value 변수에 값을 복사합니다.

배열이 갖고 있는 갯수 만큼 반복되어지게끔 하는데 각각 인덱스가 갖고 있는 값들은 value에 카피합니다.


void sort()

알파벳 순서로 출력

void narsort()

숫자가 포함되어 있는 경우에 일반적으로 정렬되는 순서로 정렬됨.




연상배열

인덱스를 숫자로 사용하는 대신 관계를 배열을 이용하여 사용합니다.

문자를 키로 사용하는데요. 인덱스가 아닌 키값을 사용하는 것입니다.

데이터베이스의 개념과 비슷한 "관계"라는 개념이 중요합니다.

<?php 

$fruit = array(

"apple"=>"red",

"banana"=>"yellow",

"tomato"=>array("red","green"),

"pear"=>array("brown","yellow"),

);


print "==== before ====<br>";

var_dump($fruit);

print "<br><br>";

print "==== after ====<br>";

unset($fruit[pear],$fruit[apple]);

var_dump($fruit);

?>


apple 이라는 배열키값에 red 를 입력한다는 뜻입니다.
apple 을 불렀을 때, 실제로 불려지는 값은 red 라는 의미로 해석할 수 있습니다.
tomato 를 불렀을 때는 red 와 green 두 종류의 값이 실제로 불려지겠네요.


var_dump($fruit);
배열내의 모든 항복을 출력하는 함수입니다.
값의 형태만 출력하고 싶을 때는 foreach()함수를 사용할 수 있습니다.


unset()
배열 값을 지우는 함수입니다.
()안에 해당되는 값을 삭제하라고 해석할 수 있습니다.


$fruit[pine]="yellow";
fruit 배열에 값을 추가시킨 것입니다.
pine 이라는 배열에 yellow 라는 값을 넣어서 배열을 추가시킨 예입니다.
삭제시에는 unset(fruit[pine]); 이렇게 적용시키면 되겠죠^^

출력결과는 아래와 같습니다.
==== before ====
array(4) { ["apple"]=> string(3) "red" ["banana"]=> string(6) "yellow" ["tomato"]=> array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } ["pear"]=> array(2) { [0]=> string(5) "brown" [1]=> string(6) "yellow" } }

==== after ====
array(2) { ["banana"]=> string(6) "yellow" ["tomato"]=> array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } } 
var_dump()라는 함수를 사용하면 위와 같이 배열의 모든 내용들이 출력됩니다.
array(4) : 배열의 갯수가 4개라는 의미입니다.
string(3) : 이것은 키 값에 정의된 값의 문자열 길이를 뜻합니다. 
   즉 여기선 3글자 라는 의미가 되겠네요.



foreach문을 사용하는 경우를 살펴보도록 하겠습니다.

우선 코드 작성 후 설명은 다음 시간에 살펴보겠습니다.

눈으로만 본다면 값의 전달과정을 이해하기 어렵습니다.

노트에 적어가면서 어떤 값이 출력될지 한번 추측해보세요^^


<?php 

function print_fr($arr_var){

foreach ($arr_var as $arr_item){

if(is_array($arr_item))

print_fr($arr_item);

else

print "Color= ".$arr_item."<br>";

}//foreach end

}//end


function print_fruit($arr_var){

foreach ($arr_var as $arr_item => $arr_list){

print "FRUIT: ".$arr_item."<br>";

if(is_array($arr_list)) // 배열값이 있을 경우 실행

print_fr($arr_list);

else

print "Color= ".$arr_list."<br>";

print "=======================<br>";

}//foreach end

}//end


$fruit = array(

"apple"=>"red",

"banana"=>"yellow",

"tomato"=>array("red","green"),

"pear"=>array("brown","yellow"),

);

print "==== before ====<br>";

print_fruit($fruit);

print "<br><br>";

print "==== after ====<br>";

unset($fruit[pear],$fruit[apple]);

print_fruit($fruit);

?>



반응형

'IT > PHP' 카테고리의 다른 글

메모장 _ 수정하기  (0) 2013.07.27
메모장 목록(저장 된 데이터 불러오기)  (0) 2013.07.24
DB 연결 메모장 글쓰기  (0) 2013.07.24
DB 연결(기초문법)  (1) 2013.07.22
배열 기초  (0) 2013.07.14

loading