php数组函数有哪些

admin 14 0

### PHP数组函数概览

在PHP中,数组是一种非常强大的数据结构,用于存储一系列的值,这些值可以是数字、字符串、甚至是另一个数组(多维数组),PHP提供了丰富的数组函数,以便开发者能够高效地创建、操作、遍历和搜索数组,我们将概述一些最常用的PHP数组函数,并简要介绍它们的功能和用法。

#### 1. 数组创建与初始化

- **`array()`**:这是创建数组的基本函数,可以手动指定数组的元素,`$arr = array(1, "apple", true);`,在PHP 5.4及更高版本中,也可以使用短数组语法`[]`来创建数组,如`$arr = [1, "apple", true];`。

- **`range()`**:虽然不直接用于创建数组,但`range()`函数可以生成一个包含指定范围内元素的数组,`$numbers = range(1, 5);`将生成一个包含1到5的整数数组。

#### 2. 数组操作

- **`array_push()`**:将一个或多个元素添加到数组的末尾(栈)。

- **`array_pop()`**:弹出(移除)数组的最后一个元素,并返回该元素的值。

- **`array_shift()`**:移除数组中的第一个元素,并返回该元素的值(队列)。

- **`array_unshift()`**:将一个或多个元素添加到数组的开头。

- **`array_merge()`**:合并一个或多个数组,如果输入的数组中有相同的字符串键名,则后面的数组会覆盖前面的数组值;如果数组包含数字键名,后面的数组将不会覆盖原来的值,而是附加到后面。

- **`array_slice()`**:根据条件返回数组中的一段。

- **`array_splice()`**:把数组中的一部分去掉并用其它值替代。

- **`array_fill()`**:用给定的值填充数组。

- **`array_flip()`**:交换数组中的键和值。

- **`array_keys()`**:返回数组中所有的键名。

- **`array_values()`**:返回数组中所有的值。

#### 3. 数组遍历

- **`foreach()`**:这是遍历数组最常用的结构,可以遍历数组中的每个元素。

- **`list()`**:用于在一行代码中为数组中的元素赋值给一组变量(通常用于索引数组)。

- **`array_map()`**:对数组的每个元素应用回调函数,并返回包含所有回调函数返回值的新数组。

- **`array_walk()`**:对数组中的每个元素应用用户自定义函数,与`array_map()`不同,`array_walk()`不会创建新数组,而是直接修改原数组。

#### 4. 数组搜索与查找

- **`in_array()`**:检查数组中是否存在某个值。

- **`array_search()`**:在数组中搜索给定的值,如果成功则返回相应的键名。

- **`array_key_exists()`**:检查给定的键名或索引是否存在于数组中。

- **`array_keys()`**(已提及,但在此上下文中强调其查找键的功能)。

- **`array_values()`**(已提及,但注意它本身不直接用于搜索,但可用于获取所有值以便进一步搜索)。

- **`array_filter()`**:用回调函数过滤数组中的元素,返回包含所有通过测试的元素的新数组。

#### 5. 数组排序

- **`sort()`**:对数组进行升序排序。

- **`rsort()`**:对数组进行降序排序,并保持索引关系。

- **`asort()`**:对数组进行升序排序,保持索引关系。

- **`arsort()`**:对数组进行降序排序,保持索引关系。

- **`ksort()`**:按照键名对数组进行升序排序。

- **`krsort()`**:按照键名对数组进行降序排序。

- **`usort()`**:使用用户自定义的比较函数对数组中的值进行排序。

- **`uasort()`**:使用用户自定义的比较函数对数组中的值进行排序,并保持索引关系。

- **`uksort()`**:使用用户自定义的比较函数对数组中的键名进行排序。

#### 6. 数组计算与统计

- **`array_sum()`**:计算数组中所有值的和。

- **`array_product()`**:计算数组中所有值的乘积。

- **`array_count_values()`**:计算数组中所有的值出现的次数。

- **`array_unique()`**:移除数组中的重复的值,并返回结果数组。

- **`array_diff