>백엔드 개발 >PHP 튜토리얼 >PHP 배열 정의의 여러 방법

PHP 배열 정의의 여러 방법

小云云
小云云원래의
2017-11-09 11:38:173474검색

배열 배열

배열이란 무엇인가요? 배열은 동시에 두 개 이상의 값을 보유할 수 있는 특수 변수입니다. PHP의 배열은 실제로 순서가 지정된 맵입니다. 맵은 값을 키에 연결하는 유형입니다. 이 유형은 여러 가지 방법으로 최적화되어 있으므로 실제 배열 또는 목록(벡터), 해시 테이블(맵 구현), 사전, 세트, ​​스택, 큐 등으로 처리할 수 있습니다. 더 많은 가능성. 배열 요소의 값은 다른 배열일 수도 있으므로 트리 구조와 다차원 배열도 허용됩니다.

일반적으로 정의 방법은 다음과 같습니다.

방법 1:

 $a=array(1,2,4,5,6);
<?php  $array=array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;);  $array[]=&#39;simon&#39;;  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 = [ &#39;start_time&#39; => &#39;123&#39;, &#39;end_time&#39; =>&#39;456&#39;];

이러한 구조를 설명하는 것은 이 매뉴얼의 범위를 벗어나지만 각 구조에 대해 최소한 하나의 예가 제공됩니다. 이러한 구조에 대한 자세한 내용은 이 광범위한 주제에 대한 다른 연구를 참조하는 것이 좋습니다.

구문

배열 정의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.