您的位置:首页 > 编程语言 > PHP开发

php中的数组操作函数总结

2018-03-17 14:39 603 查看
数组是php语言的基石之一,以下原内容摘自php手册。若有写不对的地方,还望多多指教。

array_column — 返回数组中指定的一列
//array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values —//它是用来统计数组各元素出现的频率。该函数只关心参数数组的value值出现频率,而不关心你的下标/索引

array_filter — 用回调函数过滤数组中的单元;//如果你使用explode函数把字符串打散,可使用该函数来做空值过滤
array_unique — 移除数组中重复的值;//让我想起了select distinct(true)

array_diff — 计算数组的差集
    array_diff_key — 使用键名比较计算数组的差集
array_diff_assoc — 带索引检查计算数组的差集
    //array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
    //array_diff_ukey — 用回调函数对键名比较计算数组的差集

array_intersect — 计算数组的交集
array_intersect_assoc — 带索引检查计算数组的交集
array_intersect_key — 使用键名比较计算数组的交集
//使用自定义函数来计算交集
array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey — 用回调函数比较键名来计算数组的交集

array_key_exists — 检查数组里是否有指定的键名或索引
array_keys — 返回数组中部分的或所有的键名
key — 获取当前数组内部指针指向的元素的key值;
array_values — 返回数组中所有的值

//数组元素的增减
array_pop — 弹出数组最后一个单元(出栈);//数组末尾出栈(删除末尾元素)
array_push — 将一个或多个单元压入数组的末尾(入栈)(在数组末尾添加元素)
array_shift — 将数组开头的单元移出数组;//数组开头删除元素
array_unshift — 在数组开头插入一个或多个单元;//数组开头添加元素

//数组元素统计
//array_product — 计算数组中所有值的乘积
array_sum — 对数组中所有值求和
count() == sizeof();//统计数组元素个数
array_search — (通过给value去寻找key);
array_merge — 合并一个或多个数组;// 该函数和$arr1+$arr2区别在于,下标数组:array_merge可以直接得出两数组合集,而+会优先保留前者,抛弃后者值;
 关联数组:array_merge后者array会覆盖前者array同key的值。而+还是优先保留前者,抛弃后者。

//数组排序
sort — 对数组排序
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
ksort — 对数组按照键名排序
krsort — 对数组按照键名逆向排序
natsort — 用“自然排序”算法对数组排序
natcasesort — 和上者区别:者函数不在于大小写
array_reverse — 数组倒序
rsort — 对数组逆向排序
shuffle — 打乱数组
//uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
//uksort — 使用用户自定义的比较函数对数组中的键名进行排序
//usort — 使用用户自定义的比较函数对数组中的值进行排序

//数组指针移动
current — 返回数组中的当前单元

prev — 将数组的内部指针倒回一位
next — 将数组中的内部指针向前移动一位;
each — 返回数组中当前的键/值对并将数组指针向前移动一步;//两者都是函数内部指针后移,但前者返回移动后的元素,本函数返回移动前的元素

end — 将数组的内部指针指向最后一个单元
reset — 将数组的内部指针指向第一个单元

range — 根据范围创建数组,包含指定的元素;用法range(1, 10, 2);创建一个从1到10的数组,步进值为2;比如1,3,5,7...
extract — 从数组中将变量导入到当前的符号表
该函数可以将一个关联数组的key=》value键值对转变为标量,
原型:int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )
第2参数常用值(EXTR_OVERWRITE直接覆盖已有变量, EXTR_PREFIX_ALL提取的变量全加前缀, EXTR_IF_EXISTS只提取已有变量(对$_POST?), EXTR_PREFIX_IF_EXISTS若发生变量名冲突则加前缀)
list — 把数组中的值赋给一组变量;//只能对下标数组(且假定下标从0开始)

//作者目前较少使用的函数
//array_merge_recursive — 递归地合并一个或多个数组
//array_flip — 交换数组中的键和值
//array_change_key_case — 将数组中的所有键名修改为全大写或小写
//array_chunk — 将一个数组分割成多个
//array_slice — 从数组中取出一段
//array_splice — 去掉数组中的某一部分并用其它值取代
//array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
//array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
//array_udiff — 用回调函数比较数据来计算数组的差集
//array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
//array_uintersect_uassoc — 带索引检查计算数组的交集,用单独的回调函数比较数据和索引
//array_uintersect — 计算数组的交集,用回调函数比较数据
//array_walk_recursive — 对数组中的每个成员递归地应用用户函数
//array_walk — 使用用户自定义函数对数组中的每个元素做回调处理
//array_map — 为数组的每个元素应用回调函数
//array_rand — 从数组中随机取出一个或多个单元
//array_reduce — 用回调函数迭代地将数组简化为单一的值
//array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
//array_replace — 使用传递的数组替换第一个数组的元素
//array_multisort — 对多个数组或多维数组进行排序
//array_pad — 以指定长度将一个值填充进数组
//array_fill_keys — 使用指定的键和值填充数组
//array_fill — 用给定的值填充数组
//compact — 建立一个数组,包括变量名和它们的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php array