배열이란 하나의 변수에 여러 값을 저장할 수 있는 특수한 변수를 말합니다. 예를 들어 다음의 변수가 있다고 가정해 봅니다.

<?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 댓글