PHP数组函数较多,初学者很多都记不住,经常会要用时临时查手册。但这是很不好的。这是因为,如果我们熟练掌握了,那么,程序中会少写大量的循环结构。并且,还可以优化程序的速度。
PHP的数组是PHP语言的灵魂之一。有以下特性:
1、不同于C语言中的数组,PHP数组不管是一维还是多维,均是同一数据类型。同时,因为,PHP语言本身无指针,所以,数组是完全动态的。无需预先指定大小。
2、PHP数组同时也是key value结构,并且,这个key value可以用作队列、栈、LIST、MAP、SET,所以,PHP中也就没有队列、栈、LIST、MAP、SET这些数据类型了,只有一个Array就包括了一切。
PHP数组函数虽多,但是,如果通过分类,则每一个类别中的函数都不是很多的。数组函数共有8个大类。本文按使用频度列出了这些函数。因此,如果列出一个学习计划,则可以是。
一级:掌握? 1、数组创建? 2、基本操作?
这此函数不到30个,是总函数的40%不到。如果分组中函数超过4个,一开始只要掌握前四个即可。
二级:掌握? 3、指针操作 4、打包解包 5、队列、栈 6、回调迭代?
这些函数共有16个。是总函数的20%不到。
三级:掌握? 7、排序与混洗 8、集合操作
这些函数中,除了排序与混洗的基本函数,其它函数一律不需要记住的,只要知道有这些函数即可。用时再查手册,绝对没有问题。
?
PHP数组函数(按使用频度排序)
?
1、数组创建:
?array — 新建一个数组
?range — 建立一个包含指定范围单元的数组
?array_fill — 用给定的值填充数组
?array_fill_keys — 使用指定的键和值填充数组
?array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
?
2、基本操作
?
2.1、读取
?key — 从关联数组中取得键名
?list — 把数组中的值赋给一些变量
?array_keys — 返回数组中所有的键名
?array_values — 返回数组中所有的值
?array_filter — 用回调函数过滤数组中的单元
?array_chunk — 将一个数组分割成多个
?array_slice — 从数组中取出一段
?array_rand — 从数组中随机取出一个或多个单元
?
2.2、计算
?count — 计算数组中的单元数目或对象中的属性个数
?array_sum — 计算数组中所有值的和
?array_count_values — 统计数组中所有的值出现的次数
?array_product — 计算数组中所有值的乘积
?
2.3、修改
?array_unique — 移除数组中重复的值
?array_pad — 用值将数组填补到指定长度
?array_map — 将回调函数作用到给定数组的单元上
?array_flip — 交换数组中的键和值
?array_change_key_case — 返回字符串键名全为小写或大写的数组
?array_reduce — 用回调函数迭代地将数组简化为单一的值
?
?
2.4、搜索
?in_array — 检查数组中是否存在某个值
?array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
?array_key_exists — 检查给定的键名或索引是否存在于数组中
?array_replace — 使用传递的数组替换第一个数组的元素
?array_splice — 把数组中的一部分去掉并用其它值取代
?array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
?
3、指针操作
?each — 返回数组中当前的键/值对并将数组指针向前移动一步
?next — 将数组中的内部指针向前移动一位
?current — 返回数组中的当前单元
?pos — current 的别名
?prev — 将数组的内部指针倒回一位
?reset — 将数组的内部指针指向第一个单元
?end — 将数组的内部指针指向最后一个单元
?sizeof — count 的别名
?
4、打包解包
?compact — 建立一个数组,包括变量名和它们的值
?extract — 从数组中将变量导入到当前的符号表
?
5、队列、栈
?array_pop — 将数组最后一个单元弹出(出栈)
?array_push — 将一个或多个单元压入数组的末尾(入栈)
?array_unshift — 在数组开头插入一个或多个单元
?array_shift — 将数组开头的单元移出数组
?
6、回调迭代?
?array_walk_recursive — 对数组中的每个成员递归地应用用户函数
?array_walk — 对数组中的每个成员应用用户函数
?
7、排序与混洗
?
7.1、基本操作
?shuffle — 将数组打乱
?array_multisort — 对多个数组或多维数组进行排序
?array_reverse — 返回一个单元顺序相反的数组
?
7.2、基本排序
?sort — 对数组排序
?rsort — 对数组逆向排序
?usort — 使用用户自定义的比较函数对数组中的值进行排序
?
7.2、键名排序
?ksort — 对数组按照键名排序
?krsort — 对数组按照键名逆向排序
?uksort — 使用用户自定义的比较函数对数组中的键名进行排序
?
7.3、保持索引关系排序
?asort — 对数组进行排序并保持索引关系
?arsort — 对数组进行逆向排序并保持索引关系
?uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
?
7.4、自然排序
?natsort — 用“自然排序”算法对数组排序
?natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
?
8、集合操作
?
8.1、并集
?array_merge — 合并一个或多个数组
?array_merge_recursive — 递归地合并一个或多个数组
?
8.2、差集
?array_diff — 计算数组的差集
?array_diff_assoc — 带索引检查计算数组的差集
?array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
?array_diff_key — 使用键名比较计算数组的差集
?array_diff_ukey — 用回调函数对键名比较计算数组的差集
?array_udiff — 用回调函数比较数据来计算数组的差集
?array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
?array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
?
?
8.3、交集
?array_intersect — 计算数组的交集
?array_intersect_assoc — 带索引检查计算数组的交集
?array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
?array_intersect_key — 使用键名比较计算数组的交集
?array_intersect_ukey — 用回调函数比较键名来计算数组的交集
?array_uintersect — 计算数组的交集,用回调函数比较数据
?array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
?array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引
?
?