배열 배열
배열이란 무엇인가요? 배열은 동시에 두 개 이상의 값을 보유할 수 있는 특수 변수입니다. PHP의 배열은 실제로 순서가 지정된 맵입니다. 맵은 값을 키에 연결하는 유형입니다. 이 유형은 여러 가지 방법으로 최적화되어 있으므로 실제 배열 또는 목록(벡터), 해시 테이블(맵 구현), 사전, 세트, 스택, 큐 등으로 처리할 수 있습니다. 더 많은 가능성. 배열 요소의 값은 다른 배열일 수도 있으므로 트리 구조와 다차원 배열도 허용됩니다.
일반적으로 정의 방법은 다음과 같습니다.
방법 1:
$a=array(1,2,4,5,6); <?php $array=array('a','b','c'); $array[]='simon'; print_r($array); ?>
실행 결과는 다음과 같습니다.
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 , ... ) // 键(key)可是是一个整数 integer 或字符串 string // 值(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" }
위 예에서 모든 키 이름은 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)
}
키는 선택사항입니다. 지정하지 않으면 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 ]=>
문자열(1) "a"
[1]=>
문자열(1) "b"
[6]=>
문자열(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(); ?>
Note:
试图访问一个未定义的数组键名与访问任何未定义变量一样:会导致 E_NOTICE 级别错误信息,其结果为 NULL。
更多关于PHP数组的问题可以访问相关网站:http://www.php.cn/search/PHP数组.html
위 내용은 PHP 배열 정의의 여러 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!