PHP常用函数 - 数组
排序
sort / rsort
按值排序,值与下标没有绑定,升/降。
asort / arsort
按元素值进行排序,值与下标绑定。
ksort / krsort
按键的值进行排序。
natsort
自然排序
1 | $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); |
以上例程会输出:
1 | Standard sorting |
natcasesort
自然排序, 不区分大小写. natsort 是区分大小的.
操作指针
current
返回当前被内部指针指向的数组单元的值,并不移动指针。如果内部指针指向超出了单元列表的末端,current() 返回 FALSE。 pos()就是 current()的别名.
each
返回数组中当前的 键/值 对, 并将数组指针向前移动一步.
end
将数组的内部指针指向最后一个单元.
key
返回数组中内部指针指向的当前单元的键名。
next
将数组内部的指针向前移动一位.
prev
将数组内部的指针倒回一位. 和 next 刚好相反
reset
将数组的内部指针指向第一个单元.
堆栈操作
array_push
将一个或多个单元压入数组的末尾 (入栈)
array_pop
弹出数组最后一个单元 (出栈)
array_shift
将数组开头的单元移出数组.
array_unshift
在数组开头插入一个或多个单元.
统计
其他
array_change_key_case
将数组中的所有键名修改为全大写或者全小写
*array_chunk
将一个数组分割分成多个
array_column
返回数组中指定的一列
array_combine
创建一个数组, 用一个数组的值作为键名, 另一个数组的值作为值.
*array_count_values
统计数组中的每个值出现的次数
*array_diff_key
计算数组的差集, 比较$arr, $brr, $crr, $drr…多个数组, 返回$arr 中有而其他数组中没有的 键 对应的值
array_diff
计算数组的差集, 和 array_diff_assoc 的区别在于不检查键.
*array_fill_keys
array array_fill_keys ( array $keys , [mixed] $value )
使用 value
参数的值作为值,使用 keys
数组的值作为键来填充一个数组。
array_fill
给定的值填充数组
array_filter
用回调函数过滤数组中的单元
示例:
1 | function odd($var) |
ps: & 位与运算, 当都是 1 时则为 1, 否则为 0
*array_flip
交换数组中的键和值.
array_intersect_key
计算数组的交集, 比较$arr, $brr, $crr, $drr…多个数组, 返回$arr 中有而其他数组中也有的 键 对应的值
array_intersect
计算数组的交集. 比较$arr, $brr, $crr, $drr…多个数组, 返回$arr 中有而其他数组中也有的值
array_key_exists
检查数组中是否有指定的键
key_exists
array_key_exists
的别名.
array_keys
返回数组中部分的或所有的键
array_map
为一个或多个数组的每个元素应用回调函数.
array_merge_recursive
递归的合并多个数组, 相同键的值会合并到一个数组中.
array_merge
合并多个数组, 相同键的值会覆盖.
array_multisort
可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
*array_pad
返回 array 的一个拷贝,并用 value 将其填补到 size 指定的长度。如果 size 为正,则填补到数组的右侧,如果为负则从左侧开始填补。如果 size 的绝对值小于或等于 array 数组的长度则没有任何填补。有可能一次最多填补 1048576 个单元。
array_product
计算数组中所有值得乘积
array_rand
从数组中随机取出一个或多个单元
array_reduce
将回调函数 callback
迭代地作用到 array
数组中的每一个单元中,从而将数组简化为单一的值。
array_replace_recursive
使用后面数组元素的值替换数组 array1
的值。 如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。 如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。 如果一个键仅存在于第一个数组,它将保持不变。 如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。 是递归的:它将遍历数组并将相同的处理应用到数组的内部值。
array_replace
与 array_replace_recursive 的区别就是他是非递归的.
array_reverse
返回单元顺序相反的数组
array_search
在数组中搜索给定的值,如果成功则返回首个相应的键名,如果失败则返回 false。
in_array
在数组中搜索给定的值,如果成功则返回 true,如果失败则返回 false。
array_slice
从数组中取出一段.
1 | $foo = [1,2,3,4,5,6,7,8,9]; |
array_splice
去掉数组中的某一部分, 并用其他值代替.
array_sum
对数组中所有值求和
array_unique
移除数组中重复的值, 返回过滤后的数组.
array_values
返回数组的值并建立数字索引.
array_walk_recursive
对数组中的每个成员递归地应用自定义函数, 函数默认传入两个参数, 值 和 键.
array_walk
同 array_walk_recursive, 但是不递归.
array
新建一个数组.
compact
新建一个数组, 包括变量名和他们的值.
extract
它的作用和 compact
刚好相反.
count
计算数组中的单元数目, 或对象中的属性个数. sizeof 是 count 的别名.
list
把数组中的值赋给一组变量. 注意: PHP5 中, list()
从最右边的参数开始赋值; PHP7 中, list()
从最左边的参数开始赋值. 通常而言, 不建议依赖于操作的顺序, 在未来可能会再次发生改变.
range
创建一个包含指定范围单元的数组.
shuffle
打乱数组