php數組相關總結

一 數組語法
定義數組 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-楊波的技術空間”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。