PHP 数组函数

2025年4月17日 | 阅读10分钟

PHP 数组用于在一个变量中存储相似类型的元素。使用数组,我们可以创建相似类型元素的列表。借助数组函数,我们可以以不同的方式操作数组的元素。这些 PHP 数组可以应用于单维和多维数组。

PHP 提供了各种数组函数来访问和操作数组的元素。以下是一些重要的 PHP 数组函数。

1. array()

PHP array() 函数创建并返回一个数组。它允许您创建索引数组、关联数组和多维数组

语法

示例

示例

立即执行

输出

Seasons are: Summer, Winter, Spring, and Autumn

2. in_array()

此数组方法确定提供的数组是否包含某个值。

语法

它接受三个参数

  • 要在数组中查找的值。
  • 要在其中查找值的数组。
  • 第三个布尔参数是可选的。如果提供了此值,in_array() 将确定值的数据类型及其在数组中的对应元素的数据类型是否匹配。根据该值是否在数组中,它将返回一个布尔值,即 true 或 false。

示例 1

立即执行

输出

bool(true)
bool(false)
bool(true)
bool(false)

此方法也可用于在数组中搜索数组

示例 2

立即执行

输出

Match found!

3. array_push()

此函数用于将新项添加到给定的数组中。新增项的数量会增加数组的长度,并且一个或多个新项会被添加到数组的末尾。

语法

它考虑两个参数

  • 输入数组。
  • 要添加的对象列表的数组。

示例

立即执行

输出

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
    [3] => Dave
)

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [3] => kiwi
    [4] => mango
    [5] => grapefruit
)

4. array_pop()

它返回从数组末尾删除的数组项。它一次减少数组的长度。

语法

要修改的数组是唯一必需的参数。

示例

立即执行

输出

Array
(
    [0] => sparrow
    [1] => crow
)
Bird that was removed: pigeon

5. array_slice()

提取数组的一部分。就像切面包一样,它字面意思是切掉数组的一部分。

切片操作后,原始数组保持不变,不会以任何方式修改。因此,数组的值不会改变。

语法

它考虑四个参数

  • 所需的输入数组。
  • 提取的起始位置。这是必需的,并且是一个整数。
  • 需要提取多少项?这是一个可选数字;如果未提供,函数将从开头到结尾切片或提取数组。
  • 一个可选的布尔值,用于控制是否保留输入数组的键。如果为 true,则保留键。如果为 false,则重新索引键。

示例 1

立即执行

输出

Array
(
    [0] => Basketball
    [1] => Football
    [2] => Baseball
    [3] => Soccer
    [4] => Tennis
    [5] => Swimming
)

在上面的代码中,由于未指定要提取的项目数,因此从第二个值到最后一个值提取了数组。

示例 2

立即执行

输出

Array
(
    [2] => Baseball
    [3] => Soccer
)

6. array_chunk()

PHP array_chunk() 函数将数组拆分成块。通过使用 array_chunk() 方法,您可以将数组分成多个部分。

语法

示例

立即执行

输出

Array (
[0] => Array ( [0] => 550000 [1] => 250000 )
[1] => Array ( [0] => 200000 )
)

7. array_reverse()

它用于翻转数组的元素顺序。

语法

它接受两个输入并生成一个反转的项数组

  • 要反转的数组。
  • 一个可选的布尔参数,用于控制新数组中的键是否将被保留。除非另有说明,否则返回的数组将包含从 0 开始的新键,因为此参数默认值为 false。

示例

立即执行

输出

Array (
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

保留原始键

示例

立即执行

输出

Array (
    [4] => 5
    [3] => 4
    [2] => 3
    [1] => 2
    [0] => 1
)

8. count()

PHP count() 函数用于确定给定数组中有多少项。

语法

它接受两个参数并返回一个整数

  • 必需的输入数组。
  • 可选模式标志 COUNT_NORMAL 表示正常的计数行为。仅计算顶级数组;不计算嵌套数组。第二个是 COUNT_RECURSIVE,它确定嵌套数组中的项目数。

使用标准 count() 功能的示例。由于这是默认值,因此您可以在不传递 COUNT_NORMAL 选项的情况下使用 count() 方法。

示例

立即执行

输出

There are 5 major oceans on Earth.

COUNT_RECURSIVE 标志的又一个实例。请注意,函数在计算数组内容后,会将数组内容加到嵌套数组的总数中。

示例

立即执行

输出

The zoo houses a total of 11 animals.

9. array_reduce()

通过反复将用户定义的函数应用于项的值,它将数组项减少到单个值,依次将数组中的每个值传递给函数。

虽然它也可用于连接字符串数组,但最常见的用法是对数值数组执行算术运算。

语法

它考虑三个原因

  • 所需的输入数组
  • 必需的用户定义函数
  • 用于数值算术或文本连接的可选起始值。

让我们包含一个数字数组。

示例

立即执行

输出

15

任何整数都可用作起始值。

示例

立即执行

输出

25

连接字符串

示例

立即执行

输出

**-Dog-Cat-Horse

10. sort()

PHP sort() 函数用于对数组中的所有元素进行排序。

语法

  • sort() 函数按升序对数组进行排序。
  • 它在排序后重新索引数组(数字)。
  • 可以使用 SORT_NUMERIC、SORT_STRING 等标志修改排序类型。

示例

立即执行

输出

Autumn
Spring
Summer
Winter

以下是其他一些 PHP 数组函数,此处对其进行了详细描述,以便更好地理解哪些函数适用于什么以及为什么。

数组函数描述
array_combine()它将使用一个数组作为键,另一个数组作为值来创建一个数组。
array_count_values()它将计算数组中每个唯一值的出现次数。
array_diff_assoc()比较多个数组,并同时考虑键和值来返回差异。
array_diff_keys()仅根据键查找数组之间的差异。
array_diff_uassoc()使用用户定义的函数进行键值比较来计算数组的差异。
array_diff_ukey()它使用用户定义的函数比较两个或多个数组的键。
array_diff()根据值返回数组之间的差异。
array_fill_keys()创建具有指定键的数组,并为它们分配给定值。
array_fill()生成一个数组并用特定值填充它。
array_filter()它将使用回调函数过滤数组的元素。
array_flip()它将交换数组中的键和值。
array_intersect_assoc()它将同时考虑键和值来返回数组的交集。
array_intersect_key()仅根据键查找数组之间的共同元素。
array_intersect_uassoc()使用自定义函数比较并返回匹配的键值对。
array_intersect()返回所有给定数组中都存在的元素。
array_key_exists()它将检查特定键是否存在于数组中。
array_keys()检索数组的所有或特定键。
array_merge_recursive()递归合并多个数组,合并具有相同键的值。
array_multisort()它一次对多个数组或多维数组进行排序。
array_pad()它用于向数组添加指定数量的元素,使其达到特定长度。
array_product()它将返回数组中所有值的乘积。
array_rand()它用于从数组中选择一个或多个随机键。
array_replace_recursive()递归地用其他数组中的值替换数组中的值。
array_replace()用其他数组中的元素替换数组中的元素。
array_search()它将搜索数组中的特定值,如果存在则返回其键。
array_shift()它将移除并返回数组的第一个元素。
array_splice()用其他元素替换数组的一部分,并返回修改后的数组。
array_sum()它将返回数组中所有值的总和。
array_udiff_assoc()它用于通过用户定义的函数进行键值比较来计算数组之间的差异。
array_udiff()使用自定义函数确定数组之间的差异。
array_uintersect_assoc()使用自定义函数查找数组中的共同键值对。
array_uintersect_uassoc()它用于使用两个用户定义的函数进行键值比较来计算数组的交集。
array_uintersect()根据用户定义的函数识别数组之间的共同值。
array_unique()它将从数组中删除重复的值。
array_unshift()将元素添加到数组的开头。
array_values()返回数组中的所有值,忽略键。
array_walk_recursive()它有助于递归地将函数应用于数组的每个元素。
array_walk()它将用户定义的函数应用于每个数组元素。
arsort()按值对数组进行降序排序,同时保留键关联。
compact()它将从一组变量及其值中创建一个数组。
current()它将返回当前内部指针位置的数组元素的值。
end()它用于将内部指针移动到最后一个元素并返回其值。
extract()它用于将关联数组中的变量导入到当前符号表中。
key()它将返回当前数组元素的键。
krsort()它将按键对数组进行降序排序。
ksort()它将按键对数组进行升序排序。
list()将数组的值分配给多个变量。
natcasesort()使用自然排序(不区分大小写)对数组进行排序。
next()它将内部指针移动到下一个元素并返回其值。
pos()它将返回当前指针指向的数组元素的值。
prev()它将使内部指针后移并返回前一个元素。
range()它用于创建一个包含一系列值的数组。
reset()它将内部指针移动到数组的第一个元素。
rsort()它用于按值对数组进行降序排序。
shuffle()它将随机打乱数组中元素的顺序。
sizeof()此函数也用于计算数组中的元素数量(与 count() 相同)。
sort()按升序对数组进行排序。
uasort()它将在保留索引关联的同时对数组进行排序,使用自定义比较函数。
uksort()使用自定义比较函数按键对数组进行排序。
usort()它将使用自定义函数对数组进行排序。
each()返回当前元素的键值对,并前进内部指针。