>  기사  >  백엔드 개발  >  PHP에서 배열을 정의하는 방법

PHP에서 배열을 정의하는 방법

巴扎黑
巴扎黑원래의
2017-08-04 16:33:321490검색

이 글에서는 PHP에서 배열을 정의하는 여러 가지 방법을 소개합니다. 필요한 친구들은

배열 배열

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); 
?>

실행 결과는 다음과 같습니다.
배열
(
[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
, ...
)
//키는 정수 또는 문자열이 될 수 있습니다.
//값은 모든 유형의 값이 될 수 있습니다.
마지막 배열 단위 다음 쉼표는 생략 가능합니다. 일반적으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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