1차원 배열

$arr = array(); // 배열 생성
$arr[0] = 'A'; // 배열 요소 추가
$arr[1] = 'B';
$arr[2] = 'C';

$arr2 = array('D','E','F'); // 배열 생성과 동시에 초기화

만약 배열이 존재하지 않으면, 해당 이름으로 새로운 배열이 생성된 후에 배열 요소가 추가된다.

배열 요소의 인덱스 생략이 가능하다.
생략할 경우 인덱스가 0부터 시작하여 순서대로 저장한다.

$arr[] = 'A';
$arr[] = 'B';
$arr[] = 'C';

반복문 배열 접근

$arr = array();
$arr[2] = 'apple';
$arr[3] = 'banana';
$arr[4] = 'orange';

for($i = 0; $i < count($arr); $i++){
    echo "$arr[{$i}] : ".$arr[$i]."<br>"; // apple, banana, orange
}

foreach($arr as $element){
    echo $element."<br>"; // Null, Null, apple, banana, orange
}

php에선 $arr.length가 없다. 대신 count()함수를 통해서 배열 길이에 접근이 가능하다.
하지만 count()함수는 빈 배열 홀은 무시한다.
foreach는 무시하지 않고 그대로 순회한다.

연관 배열(associative array)

PHP에서는 숫자뿐만 아니라 문자열도 배열 요소의 인덱스로 사용할 수 있다.
만약 정수와 문자열 이외에 다른 타입의 값을 키값으로 사용하면, 내부적으로 정수와 문자열로 타입 변환이 이루어 진다.

$array = array(); // 배열 생성
$array['A'] = 1000; // 연관 배열 요소 추가
$array['B'] = 2000;
$array['C'] = 3000;

// 연관 배열 생성과 동시에 초기화
$newArray = array('A' => 1000, 'B' => 2000, 'C' => 3000);

echo $newArray['A'].", ".$newArray['B'].", ".$newArray['C'];

for문으로 연관 배열 접근하기

연관 배열의 인덱스는 숫자가 아니므로, for문을 사용하여 배열 요소에 접근 할 수 없다.
대신에 foreach 문이나 each() 함수를 사용하여 접근해야 한다.

$array = array('A' => 1000, 'B' => 2000, 'C' => 3000);

foreach ($array as $key => $value) {
    echo $key." ".$value."<br>";
}


each() 함수는 배열 커서가 현재 가리키고 있는 배열 요소를 반환하고,
다음 배열 요소를 가리키도록 한다.
가리키는 요소의 다음 요소가 배열의 마지막 요소라면 더는 동작하지 않는다.

$array = array('A' => 1000, 'B' => 2000, 'C' => 3000);

while($element = each($array)){
    echo $element['key']." ".$element['value']."<br>";
}

Tags: ,

Categories:

Updated: