陣列常用函式彙總

laosan123發表於2021-10-12

重點

array() 建立陣列。

array_change_key_case() 把陣列中所有鍵更改為小寫或大寫。

array_chunk() 把一個陣列分割為新的陣列塊。

$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,2));

//Array ( [0] => Array ( [0] => Volvo [1] => BMW ) [1] => Array ( [0] => Toyota [1] => Honda ) [2] => Array ( [0] => Mercedes [1] => Opel ) )

array_column() 返回輸入陣列中某個單一列的值。

array_column(array,column_key,index_key);

$last_names = array_column($a, 'last_name');
Array
(
 [0] => Gates [1] => Jobs [2] => Zuckerberg)

$last_names = array_column($a, 'last_name', 'id');
Array
(
 [5698] => Gates [4767] => Jobs [3809] => Zuckerberg)

array_combine() 通過合併兩個陣列來建立一個新陣列。

$fname=array("Bill","Steve","Mark");
$age=array("60","56","31");
$c=array_combine($fname,$age);

// Array ( [Bill] => 60 [Steve] => 56 [Mark] => 31 )

array_count_values() 用於統計陣列中所有值出現的次數。

$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));

//Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )

array_diff() 比較陣列,返回差集(只比較鍵值)。

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);

// Array ( [d] => yellow )

array_diff_assoc() 比較陣列,返回差集(比較鍵名和鍵值)。

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);

//Array ( [d] => yellow )

array_diff_key() 比較陣列,返回差集(只比較鍵名)。

array_diff_uassoc() 比較陣列,返回差集(比較鍵名和鍵值,使用使用者自定義的鍵名比較函式)。

array_diff_ukey() 比較陣列,返回差集(只比較鍵名,使用使用者自定義的鍵名比較函式)。

array_fill() 用給定的鍵值填充陣列。

php array_fill函式作用是用鍵值填充陣列,其語法是array_fill(index,number,value),
引數index必需,是被返回陣列的第一個索引;
number必需,是規定要插入的元素數;
value 必需,規定供填充陣列所使用的值。

$a1=array_fill(3,4,"blue");

// Array ( [3] => blue [4] => blue [5] => blue [6] => blue )

array_fill_keys() 用指定鍵名的給定鍵值填充陣列。

$keys=array("a","b","c","d");
$a1=array_fill_keys($keys,"blue");

//Array ( [a] => blue [b] => blue [c] => blue [d] => blue )

array_filter() 用回撥函式過濾陣列中的元素。

 $arr = ['a','b',1,2,3]; $new_arr = array_filter($arr,function($val){ return is_numeric($val); });    var_dump($new_arr);
 //返回結果 //array (size=3) //  2 => int 1 //  3 => int 2 //  4 => int 3

array_flip() 交換陣列中的鍵和值。

array_intersect() 比較陣列,返回交集(只比較鍵值)。

array_intersect_assoc() 比較陣列,返回交集(比較鍵名和鍵值)。

array_intersect_key() 比較陣列,返回交集(只比較鍵名)。

array_intersect_uassoc() 比較陣列,返回交集(比較鍵名和鍵值,使用使用者自定義的鍵名比較函式)。

array_intersect_ukey() 比較陣列,返回交集(只比較鍵名,使用使用者自定義的鍵名比較函式)。

array_key_exists() 檢查指定的鍵名是否存在於陣列中。

array_keys() 返回陣列中所有的鍵名。

array_map() 把陣列中的每個值傳送到使用者自定義函式,返回新的值。

$arr1 = [1,2,3,4,5];
 $arr2 = [6,7,8,9,10];    //函式寫前面,陣列引數寫後面
 $new_arr = array_map(function($val1,$val2){ return $val1 + $val2; },$arr1,$arr2);    var_dump($new_arr);
 //返回結果 //array (size=5) //  0 => int 7 //  1 => int 9 //  2 => int 11 //  3 => int 13 //  4 => int 15

array_merge() 把一個或多個陣列合併為一個陣列。

array_merge_recursive() 遞迴地合併一個或多個陣列。

array_multisort() 對多個陣列或多維陣列進行排序。

array_pad() 用值將陣列填補到指定長度。

array_pop() 刪除陣列的最後一個元素(出棧)。

array_product() 計算陣列中所有值的乘積。

array_push() 將一個或多個元素插入陣列的末尾(入棧)。

array_rand() 返回陣列中一個或多個隨機的鍵。

array_reduce() 通過使用使用者自定義函式,以字串返回陣列。

array_replace() 使用後面陣列的值替換第一個陣列的值。

array_replace_recursive() 遞迴地使用後面陣列的值替換第一個陣列的值。

array_reverse() 以相反的順序返回陣列。

array_search() 搜尋陣列中給定的值並返回鍵名。

array_shift() 刪除陣列中首個元素,並返回被刪除元素的值。

array_unshift() 在陣列開頭插入一個或多個元素。

array_slice() 返回陣列中被選定的部分。

array_splice() 刪除並替換陣列中指定的元素。

array_sum() 返回陣列中值的和。

array_udiff() 比較陣列,返回差集(只比較值,使用一個使用者自定義的鍵名比較函式)。

array_udiff_assoc() 比較陣列,返回差集(比較鍵和值,使用內建函式比較鍵名,使用使用者自定義函式比較鍵值)。

array_udiff_uassoc() 比較陣列,返回差集(比較鍵和值,使用兩個使用者自定義的鍵名比較函式)。

array_uintersect() 比較陣列,返回交集(只比較值,使用一個使用者自定義的鍵名比較函式)。

array_uintersect_assoc() 比較陣列,返回交集(比較鍵和值,使用內建函式比較鍵名,使用使用者自定義函式比較鍵值)。

array_uintersect_uassoc() 比較陣列,返回交集(比較鍵和值,使用兩個使用者自定義的鍵名比較函式)。

array_unique() 刪除陣列中的重複值。

array_values() 返回陣列中所有的值。

array_walk() 對陣列中的每個成員應用使用者函式。

array_walk_recursive() 對陣列中的每個成員遞迴地應用使用者函式。

sort() 對陣列排序。

本函式會為排序的陣列中的單元賦予新的鍵名,這將刪除原有的鍵名而不僅是重新排序。

$arr = array("b", "a", "c");
sort($arr);

// Array ( [0] => a [1] => b [2] => c )

rsort() 對陣列逆向排序。這將刪除原有的鍵名而不僅是重新排序

asort() 對關聯陣列按照鍵值進行升序排序。不會改變key

// Array ( [1] => a [0] => b [2] => c )

arsort() 對關聯陣列按照鍵值進行降序排序。

// Array ( [a] => 20 [b] => 18 [c] => 25 )

ksort() 對陣列按照鍵名排序。

krsort() 對陣列按照鍵名逆向排序。

uasort() 使用使用者自定義的比較函式對陣列中的鍵值進行排序。

uksort() 使用使用者自定義的比較函式對陣列中的鍵名進行排序。

usort() 使用使用者自定義的比較函式對陣列進行排序。

compact() 建立包含變數名和它們的值的陣列。

count() 返回陣列中元素的數目。

current() 返回陣列中的當前元素。

current() 函式返回陣列中的當前元素的值。
每個陣列中都有一個內部的指標指向它的"當前"元素,初始指向插入到陣列中的第一個元素。
提示:該函式不會移動陣列內部指標。要做到這一點,請使用 next()prev() 函式。
相關的方法:

$people = array("Bill", "Steve", "Mark", "David");

//預設執行第一個
// Bill

each() 返回陣列中當前的鍵/值對。

$people = array("Bill", "Steve", "Mark", "David");

//Array ( [1] => Bill [value] => Bill [0] => 0 [key] => 0 )

end() 將陣列的內部指標指向最後一個元素。

extract() 從陣列中將變數匯入到當前的符號表。

in_array() 檢查陣列中是否存在指定的值。

key() 從關聯陣列中取得鍵名。

$people = array("Bill", "Steve", "Mark", "David");
echo "鍵的當前位置是:" . key($people);

//鍵的當前位置是:0

list() 把陣列中的值賦給一些變數。

$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;

natcasesort() 用“自然排序”演算法對陣列進行不區分大小寫字母的排序。

natsort() 用“自然排序”演算法對陣列排序。

next() 將陣列中的內部指標向前移動一位。

pos() current() 的別名。

prev() 將陣列的內部指標倒回一位。

range() 建立包含指定範圍單元的陣列。

$number = range(0,5);
print_r ($number);

// Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )

reset() 陣列的內部指標重置到陣列中的第一個元素

shuffle() 將陣列打亂。

sizeof() count() 的別名。

全部

array()    建立陣列。
array_change_key_case()    把陣列中所有鍵更改為小寫或大寫。
array_chunk()  把一個陣列分割為新的陣列塊。
array_column() 返回輸入陣列中某個單一列的值。
array_combine()    通過合併兩個陣列來建立一個新陣列。
array_count_values()   用於統計陣列中所有值出現的次數。
array_diff()   比較陣列,返回差集(只比較鍵值)。
array_diff_assoc() 比較陣列,返回差集(比較鍵名和鍵值)。
array_diff_key()   比較陣列,返回差集(只比較鍵名)。
array_diff_uassoc()    比較陣列,返回差集(比較鍵名和鍵值,使用使用者自定義的鍵名比較函式)。
array_diff_ukey()  比較陣列,返回差集(只比較鍵名,使用使用者自定義的鍵名比較函式)。
array_fill()   用給定的鍵值填充陣列。
array_fill_keys()  用指定鍵名的給定鍵值填充陣列。
array_filter() 用回撥函式過濾陣列中的元素。
array_flip()   交換陣列中的鍵和值。
array_intersect()  比較陣列,返回交集(只比較鍵值)。
array_intersect_assoc()    比較陣列,返回交集(比較鍵名和鍵值)。
array_intersect_key()  比較陣列,返回交集(只比較鍵名)。
array_intersect_uassoc()   比較陣列,返回交集(比較鍵名和鍵值,使用使用者自定義的鍵名比較函式)。
array_intersect_ukey() 比較陣列,返回交集(只比較鍵名,使用使用者自定義的鍵名比較函式)。
array_key_exists() 檢查指定的鍵名是否存在於陣列中。
array_keys()   返回陣列中所有的鍵名。
array_map()    把陣列中的每個值傳送到使用者自定義函式,返回新的值。
array_merge()  把一個或多個陣列合併為一個陣列。
array_merge_recursive()    遞迴地合併一個或多個陣列。
array_multisort()  對多個陣列或多維陣列進行排序。
array_pad()    用值將陣列填補到指定長度。
array_pop()    刪除陣列的最後一個元素(出棧)。
array_product()    計算陣列中所有值的乘積。
array_push()   將一個或多個元素插入陣列的末尾(入棧)。
array_rand()   返回陣列中一個或多個隨機的鍵。
array_reduce() 通過使用使用者自定義函式,以字串返回陣列。
array_replace()    使用後面陣列的值替換第一個陣列的值。
array_replace_recursive()  遞迴地使用後面陣列的值替換第一個陣列的值。
array_reverse()    以相反的順序返回陣列。
array_search() 搜尋陣列中給定的值並返回鍵名。
array_shift()  刪除陣列中首個元素,並返回被刪除元素的值。
array_slice()  返回陣列中被選定的部分。
array_splice() 刪除並替換陣列中指定的元素。
array_sum()    返回陣列中值的和。
array_udiff()  比較陣列,返回差集(只比較值,使用一個使用者自定義的鍵名比較函式)。
array_udiff_assoc()    比較陣列,返回差集(比較鍵和值,使用內建函式比較鍵名,使用使用者自定義函式比較鍵值)。
array_udiff_uassoc()   比較陣列,返回差集(比較鍵和值,使用兩個使用者自定義的鍵名比較函式)。
array_uintersect() 比較陣列,返回交集(只比較值,使用一個使用者自定義的鍵名比較函式)。
array_uintersect_assoc()   比較陣列,返回交集(比較鍵和值,使用內建函式比較鍵名,使用使用者自定義函式比較鍵值)。
array_uintersect_uassoc()  比較陣列,返回交集(比較鍵和值,使用兩個使用者自定義的鍵名比較函式)。
array_unique() 刪除陣列中的重複值。
array_unshift()    在陣列開頭插入一個或多個元素。
array_values() 返回陣列中所有的值。
array_walk()   對陣列中的每個成員應用使用者函式。
array_walk_recursive() 對陣列中的每個成員遞迴地應用使用者函式。
arsort()   對關聯陣列按照鍵值進行降序排序。
asort()    對關聯陣列按照鍵值進行升序排序。
compact()  建立包含變數名和它們的值的陣列。
count()    返回陣列中元素的數目。
current()  返回陣列中的當前元素。
each() 返回陣列中當前的鍵/值對。
end()  將陣列的內部指標指向最後一個元素。
extract()  從陣列中將變數匯入到當前的符號表。
in_array() 檢查陣列中是否存在指定的值。
key()  從關聯陣列中取得鍵名。
krsort()   對陣列按照鍵名逆向排序。
ksort()    對陣列按照鍵名排序。
list() 把陣列中的值賦給一些變數。
natcasesort()  用“自然排序”演算法對陣列進行不區分大小寫字母的排序。
natsort()  用“自然排序”演算法對陣列排序。
next() 將陣列中的內部指標向前移動一位。
pos()  current() 的別名。
prev() 將陣列的內部指標倒回一位。
range()    建立包含指定範圍單元的陣列。
reset()    將陣列的內部指標指向第一個元素。
rsort()    對陣列逆向排序。
shuffle()  將陣列打亂。
sizeof()   count() 的別名。
sort() 對陣列排序。
uasort()   使用使用者自定義的比較函式對陣列中的鍵值進行排序。
uksort()   使用使用者自定義的比較函式對陣列中的鍵名進行排序。
usort()    使用使用者自定義的比較函式對陣列進行排序。
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章