PHP 中的數(shù)組實際上是一個有序映射。映射是一種把 values 關聯(lián)到 keys 的類型。
1.簡單例子
<?php
$array = array(
"foo" => "bar",
"hello" => "world",
);
//php5.4
$array = [
"foo" => "bar",
"hello" => "world",
];
?>
key 可以是integer或者string.value可以是任意類型。
2.類型強制與覆蓋示例
如果在數(shù)組定義中多個單元都使用了同一個鍵名,則只使用了最后一個,之前的都被覆蓋了。
<?php
$array = array(
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
);
var_dump($array);
?>
上例中所有的鍵名都被強制轉換為 1,則每一個新單元都會覆蓋前一個的值,最后剩下的只有一個 "d"。
3.沒有鍵名的索引數(shù)組
<?php
$array = array("foo","hello","world);
var_dump($array);
?>
以上例程會輸出:
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(5) "hallo"
[3]=>
string(5) "world"
}
4.僅對部分單元指定鍵名
<?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"
}
5.訪問數(shù)組單元
<?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"
方括號和花括號可以互換使用來訪問數(shù)組單元(例如 $array[42] 和 $array{42} 在上例中效果相同)。
6.新建、修改
要修改某個值,通過其鍵名給該單元賦一個新值。要刪除某鍵值對,對其調用 unset() 函數(shù)。
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // This is the same as $arr[13] = 56;
// at this point of the script
$arr["x"] = 42; // This adds a new element to
// the array with key "x"
unset($arr[5]); // This removes the element from the array
unset($arr); // This deletes the whole array
?>
<?php
// 創(chuàng)建一個簡單的數(shù)組
$array = array(1, 2, 3, 4, 5);
print_r($array);
// 現(xiàn)在刪除其中的所有元素,但保持數(shù)組本身不變:
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);
// 添加一個單元(注意新的鍵名是 5,而不是你 可能以為的 0)
$array[] = 6;
print_r($array);
// 重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
輸出結果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)