728x90
1차원 배열
$배열이름 = array();
배열요소 참조
$배열이름[인덱스]
배열요소 추가
$arr = array();
$arr[0] = "apple";
$arr[1] = "banana";
$arr[2] = "orange";
인덱스 생략한 상태에서 저장
$arr[] = "apple";
$arr[] = "apple2";
php에서는 배열의 특정 인덱스에만 배열 요소가 추가가능
$arr = array();
$arr[10] = "banana"'
var_dump($arr);
var_dump($arr[0]); //NULL
var_dump(isset($arr[0])); //false
isset() 함수는 인수로 전달받은 변수가 초기화되어 있는지를 확인해준다.
루프를 이용한 배열접근
$arr = array("apple", "banana", "orange");
for($i = 0; $i < count($arr); $i++){
echo $arr[$i]."<br>";
}
이렇게 사용할 경우, hole(홀)을 가지는 배열에서는 for문을 사용하면 모든 배열 요소에 접근할 수 없다.
=> for each문 사용하기
$arr = array(); //배열의 생성
$arr[2] = "apple"
$arr[3] = "banana"
$arr[5] = "orange"
//$arr[0]과 $arr[1], $arr[4]는 배열의 홀이 됨.
for($i = 0; $i < count($arr); $i++) {
echo "$arr[{$i}] : ".$arr[$i]."<br>';
}
foreach ($arr as $element){
echo $element."<br>";
}
foreach문을 사용하면 예제와 같이 홀이 아닌 배열 요소에만 정확히 접근이 가능하다.
2차원 배열선언
$배열이름 = array(
array(),
array(),
...
);
루프를 이용한 2차원 배열 접근
for($row = 0; $row < 3; $row++) {
for($column = 0; $column < count($arr[$row]); $column++){
echo $arr[$row][$column].", ";
}
}
연관배열
PHP에서는 숫자뿐만 아니라 문자열도 배열 요소의 인덱스로 사용이 가능하다.
정수와 문자열 이외에 다른 타입의 값을 키값으로 사용하면, 내부적으로 정수와 문자열로 타입 변환이 이루어진다.
연관배열의 참조
$배열이름["키값"] = 값;
키와 값 사이에 => 를 넣어 주어 배열 요소에 저장될 키와 값을 저장가능하다.
$배열이름 = array("키1" => 값1, "키2" => 값2, ...);
// 연관 배열 생성과 동시에 초기화
$array = array("apple" => 1000, "banana" => 2000, "orange" => 1500);
echo $array["apple"].", ".$array["banana"].", ".$array["orange"];
$array = array("apple" => 1000); // 연관 배열 생성과 동시에 초기화
$array["banna"] = 2000;
$array["orange"] = 1500;
루프를 이용한 연관 배열로의 접근
연관 배열의 인덱스는 숫자가 아니므로, for문을 사용하여 배열 요소에 접근이 불가능하다.
foreach문이나 each()함수를 사용하여 접근해야한다.
$array = array("apple" => 1000, "banana" => 2000, "orange" => 1500);
foreach($array as $key => $value) {
echo $key." "$.value."<br>";
}
each()함수는 배열 커서( array cursor)가 가리키고 있는 배열 요소를 반환하고, 다음 배열 요소를 가리키도록 한다.
이 함수는 가리키는 요소의 다음 요소가 배열의 마지막 요소라면 더는 동작하지 않음.
$array = array("apple" => 1000, "banana" => 2000, "orange" => 1500);
while ($element = each($array)) {
echo $element['key']." ".$element['value']."<br>";
}
728x90
'Language > PHP' 카테고리의 다른 글
[ERROR] Fatal error Call to a member function on a non-object (0) | 2022.11.28 |
---|---|
클래스와 객체, 정적 멤버 (0) | 2022.09.02 |
PHP 함수 (0) | 2022.09.02 |
타입변환, 기타 연산자 (0) | 2022.09.02 |
PHP 기본 타입 (0) | 2022.09.02 |