程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php array相關函數個人小結

php array相關函數個人小結

編輯:關於PHP編程


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() 對數組按照鍵名排序。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved