1.array_chunk() 把一個數組分割為新的數組塊。其中每個數組的單元數目由 size 參數決定。最後一個數組的單元數目可能會少幾個。
例子
<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");
print_r(array_chunk($a,2));
?>
輸出:
Array (
[0] => Array ( [0] => Cat [1] => Dog )
[1] => Array ( [0] => Horse [1] => Cow )
)
【
這裡非常像linux裡的split工具。
[root@xen187v tmp]$ cat tmp
1
2
3
4
5
6
7
[root@xen187v tmp]$ split -l 2 tmp
[root@xen187v tmp]$ ls
tmp xaa xab xac xad
[root@xen187v tmp]$ cat xaa
1
2
[root@xen187v tmp]$ cat xab
3
4
[root@xen187v tmp]$ cat xac
5
6
[root@xen187v tmp]$ cat xad
7
】
2.
array_merge() 把一個或多個數組合並為一個數組。【這個是縱向合並】
array_combine() 函數通過合並兩個數組來創建一個新數組,其中的一個數組是鍵名,另一個數組的值為鍵值。【這個是橫向合並】
如果其中一個數組為空,或者兩個數組的元素個數不同,則該函數返回 false。
例子
<?php
$a1=array("a","b","c","d");
$a2=array("Cat","Dog","Horse","Cow");
print_r(array_combine($a1,$a2));
?>
【
這個很像linux下的paste命令類似。
paste單詞意思是粘貼。該命令主要用來將多個文件的內容合並,與cut命令完成的功能剛好相反。
粘貼兩個不同來源的數據時,首先需將其分類,並確保兩個文件行數相同
[root@xen187v tmp]$ cat xaa
1
2
[root@xen187v tmp]$ cat xab
3
4
[root@xen187v tmp]$ paste xaa xab
1 3
2 4
給xaa多加一行看看會怎麼樣
[root@xen187v tmp]$ cat xaa
1
2
3
[root@xen187v tmp]$ paste xaa xab
1 3
2 4
3
給xab再加兩行看看怎樣樣
[root@xen187v tmp]$ cat xab
i
i
3
4
[root@xen187v tmp]$ paste xaa xab
1 i
2 i
3 3
4
[root@xen187v tmp]$
】
3.
array_sum() 計算數組中所有值的和。
array_count_values() 函數用於統計數組中所有值出現的次數。
本函數返回一個數組,其元素的鍵名是原數組的值,鍵值是該值在原數組中出現的次數。
【很像uniq -c
[root@xen187v tmp]$ cat xab
i
i
3
4
[root@xen187v tmp]$ uniq -c xab
2 i
1 3
1 4
[root@xen187v tmp]$ uniq -c xab|awk '{print $2" "$1}'
i 2
3 1
4 1
[root@xen187v tmp]$
】
4.
【感慨:要是這些數組函數名和linux命令名一致該多好,方便記憶】
5.array_diff() 函數返回第一個數組,不在後繼數組中的數據項數組
6.array_flip()交換數組中的鍵和值. 函數返回一個反轉後的數組,如果同一值出現了多次,則最後一個鍵名將作為它的值,所有其他的鍵名都將丟失。
如果原數組中的值的數據類型不是字符串或整數,函數將報錯。
【這個值得記憶,處理數據時,容易遇到key->value要翻轉的情況】
7.array_intersect() 計算數組的交集。
【
面試中容易出的題,用原生代碼求兩個數組的交集
function intersectArray($arr1,$arr2)
{
$tmpArr = array();
foreach($arr1 as $v1) $tmpArr[$v1] = 0;
foreach($arr2 as $v2)
{
if(isset($tmpArr[$v2])
{
$tmpArr[$v2] = 1;
}
}
//$tmpArr中值為1的就是交集
$retArr = array();
foreach($tmpArr as $key => $v)
{
if($v == 1) $retArr[] = $key;
}
return $retArr;
}
】
8.array_keys() 返回數組中所有的鍵名。
9.
array_rand() 從數組中隨機選出一個或多個元素,並返回。
shuffle() 函數把數組中的元素按隨機順序重新排列
10.
array_reverse() 將原數組中的元素順序翻轉,創建新的數組並返回。
11.
array_search() 在數組中搜索給定的值,如果成功則返回相應的鍵名。
12
array_unique() 刪除數組中重復的值。
13
arsort() 對數組進行逆向排序並保持索引關系。
asort() 對數組進行排序並保持索引關系。
krsort() 對數組按照鍵名逆向排序。
ksort() 對數組按照鍵名排序。