在學習PHP的過程中,我們經常需要對數組進行操作
數組後面加內容
$a = array('a','b','c');
$a[] = 'd';
print_r($a); //array([0]=>'a',[1]=>'b',[2]=>'c',[3]=>'d')
//刪除數組第二個元素
unset($a[1]);
//循環操作
for循環只能針對索引數組
foreach循環可以針對關聯數組
數組常用函數總結:
count() array_key_exists() in_array() array_change_key_case() array_count_values() array_fill() array_filter()
array_values() array_keys() array_push() array_pop() array_shift() array_unshift()
sort() resort() usort() asort() ksort() natsort() natcasesort() array_merge() array_merge_recursive() array_diff() array_diff_assoc() array_intersect() array_interect_assoc()
array_flip() array_unique() array_reverse() array_sum() shuffle() range() srand() array_rand()
以下是各函數的詳細說明:
1 array_key_exists()
例:
<?php $a=array("Volvo"=>"XC90","BMW"=>"X5"); if (array_key_exists("Volvo",$a)) { echo "鍵存在!"; } else { echo "鍵不存在!"; } ?>2 array_change_key_case() 將數組的所有的鍵都轉換爲大寫字母或小寫字母
3 array_count_values() 用於統計數組中所有值出現的次數
<?php
4 array_fill() 用鍵值填充數組$a=array("A","Cat","Dog","A","Dog"); print_r(array_count_values($a)); ?>
運行結果:Array( [A] => 2 [Cat] => 1 [Dog] => 2)
array_fill(index,number,value);
index | 必需。被返回數組的第一個索引。 |
number | 必需。規定要插入的元素數。 |
value | 必需。規定供填充數組所使用的值。 |
6 array_values() 返回一個包含給定數組中所有鍵值的數組,但不保留鍵名。
例:
<?php
$a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
print_r(array_values($a));
?>
輸出結果:Array( [0] => Bill [1] => 60 [2] => USA)
7 array_keys() 返回包含數組中所有鍵名的一個新數組
例:
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a));
?>
輸出結果:Array( [0] => Volvo [1] => BMW [2] => Toyota)
8 array_push() 向數組尾部添加一個或多個元素(入棧),然後返回新數組的長度
例:
<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>
輸出結果:Array( [0] => red [1] => green [2] => blue [3] => yellow)
9 array_pop() 刪除數組中的最後一個元素(出棧)
例:
<?php
$a=array("red","green","blue");
array_pop($a);
print_r($a);
?>
輸出結果:Array([0] => red [1] => green)
10 array_shift() 數刪除數組中第一個元素,並返回被刪除元素的值。如果鍵名是數字的,所有元素都會獲得新的鍵名,從 0 開始,並以 1 遞增。
11 array_unshift() 向數組插入新元素。新數組的值將被插入到數組的開頭。
12 sort() 對索引數組進行升序排序。按字母進行升序排序
13 usort() 通過用戶自定義的比較函數對數組進行排序。
14 asort() 函數對關聯數組按照鍵值進行降序排序。
15 ksort() 函數對關聯數組按照鍵名進行升序排序。
16 natsort() 函數用"自然排序"算法對數組進行排序。鍵值保留它們原始的鍵名。
17 array_merge() 函數把一個或多個數組合併爲一個數組
18 array_merge_recursive() 函數把一個或多個數組合併爲一個數組。該函數與 array_merge() 函數的區別在於處理兩個或更多個數組元素有相同的鍵名時。array_merge_recursive() 不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。
例:
<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));
?>
輸出結果:Array( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue)
19 array_diff() 函數返回兩個數組的差集數組(只比較鍵值,不比較鍵名)
例:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
?>
輸出結果:Array( [d] => yellow)
20 array_diff_assoc() 函數用於比較兩個(或更多個)數組的鍵名和鍵值 ,並返回差集。
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>
輸出結果:Array( [d] => yellow)
21 array_intersect() 函數用於比較兩個(或更多個)數組的鍵值,並返回交集。
22 array_interect_assoc() 函數用於比較兩個(或更多個)數組的鍵名和鍵值,並返回交集。
23 array_flip() 函數用於反轉/交換數組中所有的鍵名以及它們關聯的鍵值。
24 array_unique() 函數移除數組中的重複的值,並返回結果數組。
25 array_reverse() 函數以相反的元素順序返回數組。
26 array_sum() 函數返回數組中所有值的和。
27 shuffle() 函數把數組中的元素按隨機順序重新排列。
28 range() 函數創建一個包含指定範圍的元素的數組。
例:
<?php
$number = range(0,5);
print_r ($number);
?>
輸出結果:Array( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5)
29 array_rand() 函數返回數組中的隨機鍵名,或者如果您規定函數返回不只一個鍵名,則返回包含隨機鍵名的數組。
例:
<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]."<br>";
echo $a[$random_keys[1]]."<br>";
echo $a[$random_keys[2]];
?>
輸出結果:redyellow
brown