一 數組語法
定義數組 array()
可以用 array() 語言結構來新建一個 array。它接受任意數量用逗號分隔的 鍵(key) => 值(value) 對。
array( key => value
, ...
)
// 鍵(key) 可是是一個 整數(integer) 或 字符串(string)
// 值(value) 可以是任意類型的值
<?php
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
key 可以是 integer 或者 string。如果key是一個 integer 的標准表示,則被解釋為整數(例如 "8" 將被解釋為 8,而 "08" 將被解釋為 "08")。key 中的浮點數被取整為 integer。在 PHP 中索引數組與關聯 數組 是相同的,它們都可以同時包含 整型 和 字符串 的下標。
值可以是任意的 PHP 類型。
<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["somearray"][6]; // 5
echo $arr["somearray"][13]; // 9
echo $arr["somearray"]["a"]; // 42
?>
如果對給出的值沒有指定鍵名,則取當前最大的整數索引值,而新的鍵名將是該值加一。如果指定的鍵名已經有了值,則該值會被覆蓋。
<?php
// 這個數組與下面的數組相同 ...
array(5 => 43, 32, 56, "b" => 12);
// ...
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
使用 TRUE 作為鍵名將使 integer 1 成為鍵名。使用 FALSE 作為鍵名將使 integer 0 成為鍵名。使用 NULL 作為鍵名將等同於使用空字符串。使用空字符串作為鍵名將新建(或覆蓋)一個用空字符串作為鍵名的值,這和用空的方括號不一樣。
不能用數組和對象作為鍵(key)。這樣做會導致一個警告:Illegal offset type。
用方括號的語法新建/修改
可以通過明示地設定值來改變一個現有的數組。
這是通過在方括號內指定鍵名來給數組賦值實現的。也可以省略鍵名,在這種情況下給變量名加上一對空的方括號(“[]”)。
$arr[key] = value;
$arr[] = value;
// key 可以是 integer 或 string
// value 可以是任意類型的值如果 $arr 還不存在,將會新建一個。這也是一種定義數組的替換方法。要改變一個值,只要給它賦一個新值。如果要刪除一個鍵名/值對,要對它用 unset()。
<?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
?>
Note:
如上所述,如果給出方括號但沒有指定鍵名,則取當前最大整數索引值,新的鍵名將是該值 + 1。如果當前還沒有整數索引,則鍵名將為 0。如果指定的鍵名已經有值了,該值將被覆蓋。
注意這裡所使用的最大整數鍵名不一定當前就在數組中。它只要在上次數組重新生成索引後曾經存在過就行了。以下面的例子來說明:
<?php
// 創建一個簡單的數組
$array = array(1, 2, 3, 4, 5);
print_r($array);
// 現在刪除其中的所有元素,但保持數組本身不變:
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
二 數組函數
1.數組合並:
array array_merge(array1.array2);
2.刪除數組中的最後一個元素,即將數組最後一個單元彈出
mixed array_pop(array $array);
$array 必須是數組變量
返回值:mixed:是被刪除的元素
3.向數組的結尾壓入數據
int array_push(array $array ,mixed var[,mixed....])
第一個參數:array 必須是數組變量 (引用傳遞)
第二個參數:var[,mixed....] 可以插入多個變量
返回值:int是相應數的開始位置
4.從數組中隨機選出一個或多個元素
mixed array_rand(array input [,int num_req]);
第一個參數:input 數組
第二個參數:num_req 指定選擇多少個數
返回值:mixed 是數組的下標,如果num_req>1,返回的就是下表的int數組
5 刪除數組的第一個元素
mixed array_shift(array $array)
第一個參數:array 必須是數組變量 (引用傳遞);
返回值:mixed 被刪的元素值
6 返回數組中所有值的總和
array中元素為數字,就返回數組中元素之和,如果有字符串就轉化為整數。
number array_sum(array array);
第一個參數:array 必須是數組變量;
返回值:number
7 檢查數組中是否存在某個值
bool in_array(mixed needle ,array haystack [,bool strict])
needle 要查找的變量
haystack 數組
strict 可選參數
作者“ITeamsky-楊波的技術空間”