数组常用函数汇总

重点

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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!