PHP常用函数 - 数组

本文最后更新于:2023年12月5日 晚上

排序

sort / rsort

按值排序,值与下标没有绑定,升/降。

asort / arsort

按元素值进行排序,值与下标绑定。

ksort / krsort

按键的值进行排序。

natsort

自然排序

$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);

以上例程会输出:

Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

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

用回调函数过滤数组中的单元

示例:

function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));

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

返回单元顺序相反的数组

在数组中搜索给定的值,如果成功则返回首个相应的键名,如果失败则返回 false。

in_array

在数组中搜索给定的值,如果成功则返回 true,如果失败则返回 false。

array_slice

从数组中取出一段.

$foo = [1,2,3,4,5,6,7,8,9];
var_dump(array_slice(array_reverse($foo), 0, 2));

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

打乱数组


PHP常用函数 - 数组
http://blog.lujinkai.cn/PHP/基础/PHP常用函数 - 数组/
作者
像方便面一样的男子
发布于
2020年12月11日
更新于
2023年12月5日
许可协议