這里我們主要介紹的是array_merge()函數(shù),也是我們在使用PHP合并數(shù)組的時候經(jīng)常使用到的函數(shù),其他的附加合并函數(shù),我在這里也大概描述一下就行了,如果需要更加詳細或者更多的函數(shù),可以查看PHP幫助文檔,也可以根據(jù)需求寫適合自己的PHP自定義函數(shù)
array_merge()函數(shù)將數(shù)組合并到一起,返回一個聯(lián)合的數(shù)組。所得到的數(shù)組以第一個輸入數(shù)組參數(shù)開始,按后面數(shù)組參數(shù)出現(xiàn)的順序依次迫加。其形式為:
Php代碼
array_merge (array array1 array2…,arrayN) |
這個函數(shù)將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。
實例:
$fruits = array( "apple" , "banana" , "pear" ); $numbered = array( "1" , "2" , "3" ); $cards = array_merge($fruits, $numbered); print_r($cards); // 輸出 // Array ( [0] => apple [1] => banana [2] => pear [3] => 1 [4] => 2 [5] => 3 ) |
2. 追加數(shù)組
array_merge_recursive()函數(shù)與array_merge()相同,可以將兩個或多個數(shù)組合并在一起,形成一個聯(lián)合的數(shù)組.
兩者之間的區(qū)別在于,當(dāng)某個輸入數(shù)組中的某個鍵己經(jīng)存在于結(jié)果數(shù)組中時該函數(shù)會采取不同的處理方式.array_merge()會覆蓋前面存在的鍵/值對,替換為當(dāng)前輸入數(shù)組中的鍵/值對,而array_merge_recursive()將把兩個值合并在一起,形成一個新的數(shù)組,并以原有的鍵作為數(shù)組名。還有一個數(shù)組合并的形式,就是遞歸追加數(shù)組。其形式為:
array array_merge_recursive(array array1,array array2[…,array arrayN])
程序?qū)嵗缦拢?/p>
實例:
$fruit1 = array( "apple" => "red" , "banana" => "yellow" ); $fruit2 = array( "pear" => "yellow" , "apple" => "green" ); $result = array_merge_recursive($fruit1, $fruit2); print_r($result); // 輸出 // Array ( [apple] => Array ( [0] => red [1] => green ) [banana] => yellow [pear] => yellow ) |
現(xiàn)在鍵 apple 指向一個數(shù)組,這個數(shù)組由兩個顏色值組成的索引數(shù)組。
3. 連接數(shù)組
array_combine()函數(shù)會得到一個新數(shù)組,它由一組提交的鍵和對應(yīng)的值組成。其形式為:
array array_combine(array keys,array values)
注意,兩個輸入數(shù)組必須大小相同,不能為空。示例如下
實例:
$name = array( "apple" , "banana" , "orange" ); $color = array( "red" , "yellow" , "orange" ); $fruit = array_combine($name, $color); print_r($fruit); // 輸出 // Array ( [apple] => red [banana] => yellow [orange] => orange ) |
4. 拆分數(shù)組 array_slice()
array_slice()函數(shù)將返回數(shù)組中的一部分,從鍵offset開始,到offset+length位置結(jié)束。其形式:
5. 接合數(shù)組 array_splice()
array_splice()函數(shù)會刪除數(shù)組中從offset開始到offset+length 結(jié)束的所有元素,并以數(shù)組的形式返回所刪除的元素。其形式為:
6. 數(shù)組的交集 array_intersect()
array_intersect()函數(shù)返回一個保留了鍵的數(shù)組,這個數(shù)組只由第一個數(shù)組中出現(xiàn)的且在其他每個輸入數(shù)組中都出現(xiàn)的值組成。其形式如下:
7. 關(guān)聯(lián)數(shù)組的交集 array_intersect_assoc()
函數(shù)array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數(shù)組的鍵。因此,只有在第一個數(shù)組中出現(xiàn),且在所有其他輸入數(shù)組中也出現(xiàn)的鍵/值對才返回到結(jié)果數(shù)組中。
8. 數(shù)組的差集 array_diff()
函數(shù)array_diff()返回出現(xiàn)在第一個數(shù)組中但其他輸入數(shù)組中沒有的值。這個功能與array_intersect()相反。
9. 關(guān)聯(lián)數(shù)組的差集 array_diff_assoc()
函數(shù)array_diff_assoc()與array_diff()基本相同,只是它在比較時還考慮了數(shù)組的鍵。因此,只在第一個數(shù)組中出現(xiàn)而不再其他輸入數(shù)組中出現(xiàn)的鍵/值對才會返回到結(jié)果數(shù)組中。其形式如下:
10. 獲取當(dāng)前數(shù)組鍵 key()
key()函數(shù)返回input_array中當(dāng)前指針?biāo)谖恢玫逆I。其形式如下:
12. 獲取當(dāng)前數(shù)組鍵和值 each()
each()函數(shù)返回input_array的當(dāng)前鍵/值對,并將指針推進一個位置。其形式如下:
13. in_array()函數(shù)
in_array()函數(shù)在一個數(shù)組匯總搜索一個特定值,如果找到這個值返回true,否則返回false。
14. array_key_exists()函數(shù)
如果在一個數(shù)組中找到一個指定的鍵,函數(shù)array_key_exists()返回true,否則返回false。
15. array_search()函數(shù)
array_search()函數(shù)在一個數(shù)組中搜索一個指定的值,如果找到則返回相應(yīng)的鍵,否則返回false。
16. array_keys()函數(shù)
array_keys()函數(shù)返回一個數(shù)組,其中包含所搜索數(shù)組中找到的所有鍵。
17. array_values()函數(shù)
array_values()函數(shù)返回一個數(shù)組中的所有值,并自動為返回的數(shù)組提供數(shù)值索引。
18. 在數(shù)組頭添加元素
array_unshift()函數(shù)在數(shù)組頭添加元素。所有己有的數(shù)值鍵都會相應(yīng)地修改,以反映其在數(shù)組中的新位置,但是關(guān)聯(lián)鍵不受影響。
19. 在數(shù)組尾添加元素
array_push()函數(shù)的返回值是int型,是壓入數(shù)據(jù)后數(shù)組中元素的個數(shù),可以為此函數(shù)傳遞多個變量作為參數(shù),同時向數(shù)組壓入多個變量。
20. 從數(shù)組頭刪除值
array_shift()函數(shù)刪除并返回數(shù)組中找到的元素。其結(jié)果是,如果使用的是數(shù)值健,則所有相應(yīng)的值都會下移,而使用關(guān)聯(lián)鍵的數(shù)組不受影響。
21. 從數(shù)組尾刪除元素
array_pop()函數(shù)刪除并返回數(shù)組的最后一個元素。
聯(lián)系客服