學習PHP的數組總結【經驗】

什麼是數組?數組就是被命名的用來存儲一系列數值的地方。數組array是很是重要的數據類型。相對於其餘的數據類型,它更像是一種結構,而這種結果構能夠存儲一系列數值。數組可以在單一變量名中存儲許多值,而且可以經過引用下標號來訪問某個值。 在 PHP 中,有三種數組類型: 索引數組 - 帶有數字索引的數組 關聯數組 - 帶有指定鍵的數組 多維數組 - 包含一個或多個數組的數組 建立數組 array(key => value) 建立索引數組 使用array()函數聲明數組。PHP屬於弱類型語言相對較靈活和方便,也能夠直接是數組的元素值value,不須要鍵值key,索引是自動分配的(索引從 0 開始)。 例: array("1" => "百度","2" => "阿里","3" => "騰訊"); 或者是不使用鍵值: array("百度","阿里","騰訊"); 固然也能夠寫成: $arr[0] = "百度"; $arr[1] = "阿里"; $arr[2] = "騰訊"; 建立關聯數組 關聯數組和索引數組相似,只是關聯數組不可以像索引數組的鍵名那樣只可以爲數字,它能夠是數值和字符串以及混合形式,判斷一個數組是否爲關聯數組的依據是:數組中的鍵名是否存在一個不是數字的。不是就是關聯。 array("李彥宏" => "百度","馬雲" => "阿里","馬化騰" => "騰訊"); 多維數組 array(array(),array()) 二維數組 得到數組的長度 - count() 函數 //結果返回3(說明數組中有三個元素) 遍歷數組 輸出數組中元素的值。對於索引數組經常使用for、foreach;對於關聯數組經常使用foreach。使用print_r()函數打印循環後的結果,也能夠用var_dump()。 遍歷索引數組 遍歷並輸出索引數組的全部值,可使用for、 foreach(array_expression as $value) 、foreach (array_expression as $key => $value) 循環,以下: 使用for循環 "; //換行顯示 print_r($data); 打印結果顯示以下: Array (    [0] => 百度    [1] => 阿里    [2] => 騰訊 ) 使用foreach循環 "; //換行顯示 print_r($data);//打印結果和上面同樣 注意:data後面有一個數組符號[],爲何呢? 遍歷關聯數組 遍歷並輸出關聯數組的全部值,可使用 foreach (array_expression as $key => $value) 循環,以下: "百度","馬雲" => "阿里","馬化騰" => "騰訊"); foreach ($arr as $key => $value) {    $data[$key] = $value; } echo "express

"; //換行顯示
print_r($data);
打印結果顯示:
Array
(
    [李彥宏] => 百度
    [馬雲] => 阿里
    [馬化騰] => 騰訊
)

注意到沒?此時的data後是[$key]?而不是[]
一個數關聯數組一個是數字索引數組,
增長刪除數組的元素

在數組元素的尾部增長
array_push(array,value1,value2...) 函數向第一個參數的數組尾部添加一個或多個元素(入棧),而後返回新數組的長度。
該函數等於屢次調用 $array[] = $value。

"; //換行顯示
print_r($arr);
打印結果顯示:
Array
(
    [0] => 百度
    [1] => 阿里
    [2] => 騰訊
    [3] => 知乎
    [4] => 微博
)

在數組元素的開始增長
array_unshift(array,value1,value2,value3...) 函數用於向數組插入新元素。新數組的值將被插入到數組的開頭。

"; //換行顯示
print_r($arr);
打印結果顯示:
Array
(
    [0] => 知乎
    [1] => 微博
    [2] => 百度
    [3] => 阿里
    [4] => 騰訊
)

在數組元素的尾部刪除
array_pop(array) 函數刪除數組中的最後一個元素。

"; //換行顯示
print_r($arr);
打印結果顯示:
Array
(
    [0] => 百度
    [1] => 阿里
)

在數組元素的開始刪除
array_shift(array) 函數刪除數組中第一個元素 並能夠返回被刪除元素的值。

"; //換行顯示
print_r($arr);
打印結果顯示:
Array
(
    [0] => 阿里
    [1] => 騰訊
)

移除數組中重複的值
array_unique(array) 函數移除數組中的重複的值,並返回結果數組。

";
print_r($data);
打印結果顯示:
Array
(
    [0] => 百度
    [1] => 阿里
    [2] => 騰訊
    [4] => 微博
)

定位數組元素

搜索數組中存在的值
in_array(search,array,type)檢查數組中是否存在指定的值。
若是給定的值 search 存在於數組 array 中則返回 true。若是第三個參數設置爲 true,函數只有在元素存在於數組中且數據類型與給定值相同時才返回 true。若是沒有在數組中找到參數,函數返回 false。

";
print_r($data);
打印結果顯示:
Array
(
    [0] => 百度
    [1] => 阿里
    [2] => 騰訊
    [3] => 知乎
)

array_splice(array,start,length,array) 函數從數組中移除選定的元素,並用新元素取代它。該函數也將返回包含被移除元素的數組。

";
print_r($arr1);
打印結果顯示:
Array
(
    [0] => 知乎
    [1] => 微博
    [2] => 騰訊
)

數組合並、拆分、比較

array_merge()函數將數組合併到一塊兒,返回一個聯合的數組。所獲得的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次追加。

";
print_r($data);
打印結果顯示:
Array
(
    [0] => 百度
    [1] => 阿里
    [2] => 騰訊
    [3] => 知乎
    [4] => 微博
)

遞歸追加數組
array_merge_recursive()函數與array_merge()相同,能夠將兩個或多個數組合併到一塊兒,造成一個聯合的數組。二者之間的區別在於,當某個輸入數組中的某個鍵已經存在於結果數組中時該函數會採起不一樣的處理方法。array_merge()會覆蓋前面存在的鍵/值對,將其替換爲當前輸入數組中的鍵/值對,而array_merge_recursive()將兩個值合併在一塊兒,造成一個新的數組並以原有的鍵做爲數組名。其形式爲:

$arr= array('one'=>'C', 'one'=>'B'); 
$arr1= array('three'=>'1', 'one'=>'2'); 
$arr2= array_merge_recursive($arr, $arr1); 
echo "
相關文章
相關標籤/搜索