이 글에서는 PHP에서 배열을 정의하는 여러 가지 방법을 소개합니다. 필요한 친구들은
배열 배열
PHP의 배열은 실제로 순서가 지정된 맵입니다. 맵은 값을 키에 연결하는 유형입니다. 이 유형은 여러 가지 방법으로 최적화되어 있으므로 실제 배열이나 목록(벡터), 해시 테이블(맵 구현), 사전, 세트, 스택, 큐 및 더 많은 가능성으로 처리될 수 있습니다. 배열 요소의 값은 다른 배열일 수도 있으므로 트리 구조와 다차원 배열도 허용됩니다.
일반적으로 정의 방법은 다음과 같습니다.
방법 1:
$a=array(1,2,4,5,6);
<?php $array=array('a','b','c'); $array[]='simon'; print_r($array); ?>
실행 결과는 다음과 같습니다.
배열
(
[0]=>a
[1]=>b
[2]=>c
[3]=>simon
)
방법 2:
$a=array(key1=>value1,key2=>value2,key3=>value3);
방법 3:
$a[key1]=value1; $a[key2]=value2;
방법 4: 대괄호 []를 통해 배열 정의
PHP 버전 5.4부터 새로운 배열 약어 구문을 사용하면 이렇게 작성할 수 있습니다.
php 버전 5.3 이하에서는 이와 같은 쓰기를 허용하지 않습니다...
$data = [ 'start_time' => '123', 'end_time' =>'456' ];
이러한 구조를 설명하는 것은 이 매뉴얼의 범위를 벗어나지만 각 구조에 대해 최소한 하나의 예가 제공됩니다. 이러한 구조에 대한 자세한 내용은 이 광범위한 주제에 대한 다른 연구를 참조하는 것이 좋습니다.
구문
배열 정의 array()
array() 언어 구조를 사용하여 새 배열을 만들 수 있습니다. 쉼표로 구분된 키 => 값 쌍을 원하는 만큼 허용합니다.
array( key => value
, ...
)
//키는 정수 또는 문자열이 될 수 있습니다.
//값은 모든 유형의 값이 될 수 있습니다.
마지막 배열 단위 다음 쉼표는 생략 가능합니다. 일반적으로 array(1, 2, ) 대신 array(1, 2)와 같은 단일 행 배열 정의에 사용됩니다. 새 셀을 더 쉽게 추가할 수 있도록 여러 줄 배열 정의에서 마지막 쉼표를 남겨 두는 것이 일반적입니다.
5.4부터 array() 대신 []를 사용하여 짧은 배열 정의 구문을 사용할 수 있습니다.
예제 #1 간단한 배열
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
key는 정수 또는 문자열일 수 있습니다. 값은 모든 유형이 될 수 있습니다.
또한 키에는 다음과 같은 강제 변환이 적용됩니다.
적법한 정수 값을 포함하는 문자열은 정수 유형으로 변환됩니다. 예를 들어 키 이름 "8"은 실제로 8로 저장됩니다. 그러나 "08"은 합법적인 십진수 값이 아니기 때문에 캐스팅되지 않습니다.
부동 소수점 숫자도 정수로 변환됩니다. 즉, 소수 부분은 반올림됩니다. 예를 들어 키 이름 8.7은 실제로 8로 저장됩니다.
부울 값도 정수로 변환됩니다. 즉, 키 이름 true는 실제로 1로 저장되고 키 이름 false는 0으로 저장됩니다.
Null은 빈 문자열로 변환됩니다. 즉, 키 이름 null이 실제로 ""로 저장됩니다.
배열과 객체는 키 이름으로 사용할 수 없습니다. 이렇게 하면 다음과 같은 경고가 발생합니다: 잘못된 오프셋 유형.
여러 장치가 배열 정의에서 동일한 키 이름을 사용하는 경우 마지막 하나만 사용되며 이전 항목을 덮어쓰게 됩니다.
예제 #2 유형 강제 변환 및 덮어쓰기 예
<?php $array = array( 1 => "a", "1" => "b", 1.5 => "c", true => "d", ); var_dump($array); ?>
위 루틴은 다음을 출력합니다.
array(1) {
[1]=>
string(1) "d"
}
up 이 예에서는 모든 키 이름이 1로 강제 설정되므로 각각의 새 단위가 이전 값을 덮어쓰고 "d" 하나만 남게 됩니다.
PHP 배열은 정수 및 문자열 유형 키 이름을 모두 포함할 수 있습니다. 왜냐하면 PHP는 실제로 인덱스 배열과 연관 배열을 구별하지 않기 때문입니다.
주어진 값에 키가 지정되지 않은 경우 현재 가장 큰 정수 인덱스 값이 사용되며 새 키는 해당 값에 1을 더한 값이 됩니다. 지정된 키 이름에 이미 값이 있으면 해당 값을 덮어씁니다.
예제 #3 정수 및 문자열 키 이름 혼합
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array); ?>
위 루틴은 다음을 출력합니다.
array(4) {
["foo"]=>
string(3) "bar"
["bar"]=>
string(3) "foo"
[100]=>
int(-100)
[-100]=>
int(100)
}
key는 선택 사항입니다. 지정하지 않으면 PHP는 자동으로 이전에 사용된 가장 큰 정수 키에 1을 더한 값을 새 키로 사용합니다.
예제 #4 키 이름이 없는 인덱스 배열
<?php $array = array("foo", "bar", "hallo", "world"); var_dump($array); ?>
위 루틴은 다음을 출력합니다:
array(4) {
[0]=>
string(3) "foo"
[1]= > ;
string(3) "bar"
[2]=>
string(5) "hallo"
[3]=>
string(5) "world"
}
특정 단위만 선택할 수도 있습니다 지정 키 이름을 지정하고 나머지는 공백으로 둡니다:
예 #5 일부 장치에만 키 이름을 지정합니다.
<?php $array = array( "a", "b", 6 => "c", "d", ); var_dump($array); ?>
위 루틴은 다음을 출력합니다.
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[6]=>
string(1) "c"
[7]=>
string(1) "d"
}
可以看到最后一个值 "d" 被自动赋予了键名 7。这是由于之前最大的整数键名是 6。
用方括号语法访问数组单元 ¶
数组单元可以通过 array[key] 语法来访问。
Example #6 访问数组单元
<?php $array = array( "foo" => "bar", 42 => 24, "multi" => array( "dimensional" => array( "array" => "foo" ) ) ); var_dump($array["foo"]); var_dump($array[42]); var_dump($array["multi"]["dimensional"]["array"]); ?>
以上例程会输出:
string(3) "bar"
int(24)
string(3) "foo"
Note:
方括号和花括号可以互换使用来访问数组单元(例如 $array[42] 和 $array{42} 在上例中效果相同)。
自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。
自 PHP 5.5 起可以用数组间接引用一个数组原型。
Example #7 数组间接引用
<?php function getArray() { return array(1, 2, 3); } // on PHP 5.4 $secondElement = getArray()[1]; // previously $tmp = getArray(); $secondElement = $tmp[1]; // or list(, $secondElement) = getArray(); ?>
위 내용은 PHP에서 배열을 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!