php
PHP - 배열의 이해
배열이란 하나의 변수에 여러 값을 저장할 수 있는 특수한 변수를 말합니다. 예를 들어 다음의 변수가 있다고 가정해 봅니다.
예시와 같이 몇 개의 변수라면 문제되지 않겠지만, 비슷한 이름을 가진 변수가 수 백 개라고 가정하면 이야기는 달라집니다.
비슷한 이름을 가졌기 때문에 관리가 어려울 뿐 아니라 상당한 코드량을 차지하게 됩니다. 때문에 하나의 변수에 여러 값을 저장할 수 있는 배열을 사용합니다.
배열은 변수명 다음에 오는 "["와 "]" 사이의 숫자나 문자열이 오거나 array(...)로 정의한 값을 배열이라 부릅니다.
배열에는 인덱스 배열, 연관 배열, 다차원 배열이 존재하며 인덱스 배열은 항상 0 부터 시작해서 자동으로 증가 값을 가지게 됩니다.
연관 배열이란 key 와 value 값을 가지는 배열로서 key 에 숫자나 문자열이 옵니다.
다차원 배열에는 1차원 배열, 2차원 배열 .... 무수한 배열을 만들 수 있습니다.
for문을 이용하여 인덱스 배열을 가져 옵니다.
foreach 문을 이용한 연관 배열을 가져 옵니다.
다차원 배열은 1차원 배열을 가지는 기존 방식보다는 하나 이상의 배열을 포함하는 배열로서 인덱스 배열이나 연관 배열을 복합적으로 가질 수 있습니다.
<?php
$var1 = "one";
$var2 = "two";
$var3 = "tree";
?>
예시와 같이 몇 개의 변수라면 문제되지 않겠지만, 비슷한 이름을 가진 변수가 수 백 개라고 가정하면 이야기는 달라집니다.
비슷한 이름을 가졌기 때문에 관리가 어려울 뿐 아니라 상당한 코드량을 차지하게 됩니다. 때문에 하나의 변수에 여러 값을 저장할 수 있는 배열을 사용합니다.
배열은 변수명 다음에 오는 "["와 "]" 사이의 숫자나 문자열이 오거나 array(...)로 정의한 값을 배열이라 부릅니다.
<?php
// 인덱스 배열
$변수명[0] = "배열";
// 빈 배열
$변수명 = array();
$변수명 = [];
// 문자열 배열
$변수명 = array("one", "two", "tree");
// 연관 배열
$변수명 = array(
"name" => "habony",
"age" => 20,
"job" => "it"
);
$var = array("one", "two", "tree");
echo "I like " . $var[0] . ", " . $var[1] . " and " . $var[2];
// 결과 i like one, two and tree
?>
배열에는 인덱스 배열, 연관 배열, 다차원 배열이 존재하며 인덱스 배열은 항상 0 부터 시작해서 자동으로 증가 값을 가지게 됩니다.
<?php
// 인덱스 배열
// 첫 번째 방법...
$var = array("one", "two", "tree");
// 값을 가져올 때는 ...
echo $var[0]; // one
echo $var[1]; // two
echo $var[2]; // tree
// 두 번째 방법...
$var2[0] = "one";
$var2[1] = "two";
$var2[2] = "tree";
echo $var2[2]; // tree
// 세 번째 방법...
// []사이에 숫자를 생략하면 0 부터 시작해서
// 자동으로 증가 값을 가집니다.
$var3[] = "one";
$var3[] = "two";
$var3[] = "tree";
// 값을 가져올 때는...
echo $var3[0]; // one
echo $var3[2]; // tree
?>
연관 배열이란 key 와 value 값을 가지는 배열로서 key 에 숫자나 문자열이 옵니다.
array("key" => "value", "key2" => "value" ... );
<?php
// 연관 배열
// 첫 번째 방법...
$var = array("num1" =>"one", "num2" => "two", "num3" => "tree");
// 값을 가져올 때는 ...
echo $var["num1"]; // one
echo $var["num2"]; // two
echo $var["num3"]; // tree
// 두 번째 방법...
$var2["num1"] = "one";
$var2["num2"] = "two";
$var2["num3"] = "tree";
echo $var2["num3"]; // tree
?>
다차원 배열에는 1차원 배열, 2차원 배열 .... 무수한 배열을 만들 수 있습니다.
<?php
// 다차원 배열
// 1차원 배열
$var = array(
"num1" =>"one",
"num2" => "two",
"num3" => "tree"
);
// 값을 가져올 때는...
echo $var["num1"]; // one
echo $var["num2"]; // two
// 2차원 배열...
$var2 = array(
"num1" => array("num2" => "one"),
"num2" => array("num2" => "two")
);
// 값을 가져올 때는...
echo $var2["num1"]["num2"]; // one
echo $var2["num2"]["num2"]; // two
// 3차원 배열
$var3 = array(
"num1" => array(
"num2" => array(
"num3" => "one"
)
),
"num2" => array(
"num2" => array(
"num3" => "two"
)
)
);
// 값을 가져올 때는...
echo $var3["num1"]["num2"]["num3"]; // one
echo $var3["num2"]["num2"]["num3"]; // two
// 인덱스 5차원 배열
$var4[0][1][2][3][4] = "one";
$var4[1][1][2][3][4] = "two";
$var4[2][1][2][3][4] = "tree";
// 값을 가져올 때는...
echo $var4[2][1][2][3][4]; // tree
?>
for문을 이용하여 인덱스 배열을 가져 옵니다.
<?php
$var = array("one", "two", "tree");
$length = count($var);
for($i=0; $i<$length; $i++){
echo $var[$i] . “, ”;
}
// 출력: one, two, tree
?>
foreach 문을 이용한 연관 배열을 가져 옵니다.
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $key=>$value){
echo "Key = " . $key . ", Value=" . $value;
echo "<br/>";
}
/*
출력:
Key = Peter, Value=35
Key = Ben, Value=37
Key = Joe, Value=43
*/
?>
다차원 배열은 1차원 배열을 가지는 기존 방식보다는 하나 이상의 배열을 포함하는 배열로서 인덱스 배열이나 연관 배열을 복합적으로 가질 수 있습니다.
<?php
// 2차원 배열
$cars = array (
array("Volvo", 100, 96),
array("BMW", 60, 59),
array("Toyota", 110, 100)
);
?>
<?php
$families = array (
"Griffin"=>array (
"Peter",
"Lois",
"Megan"
),
"Quagmire"=>array (
"Glenn"
),
"Brown"=>array (
"Cleveland",
"Loretta",
"Junior"
)
);
/*
출력:
Array (
[Griffin] => Array (
[0] => Peter
[1] => Lois
[2] => Megan
)
[Quagmire] => Array (
[0] => Glenn
)
[Brown] => Array (
[0] => Cleveland
[1] => Loretta
[2] => Junior
)
)
*/
echo $families['Griffin'][2];
// 출력: Megan
?>
0 댓글