在PHP的数组处理函数中,array_values()是非常实用的一个工具,它的核心作用是提取输入数组中所有的值,然后返回一个以数字索引从0开始的新数组,原数组的键名会被完全忽略,不会保留原有的关联键或者自定义数字键。

array_values()函数基本语法
该函数的语法结构非常简单,只有一个必填参数,具体定义如下:
<?php /** * 返回数组中所有的值并重置索引 * @param array $array 待处理的输入数组 * @return array 包含所有数组值的新索引数组 */ array_values(array $array): array ?>
不同场景下的使用示例
处理关联数组
当输入是关联数组时,array_values()会丢弃所有的字符串键名,只保留值并重新排序索引:
<?php
$assocArray = [
'name' => '张三',
'age' => 25,
'city' => '北京'
];
$result = array_values($assocArray);
print_r($result);
// 输出结果:
// Array
// (
// [0] => 张三
// [1] => 25
// [2] => 北京
// )
?>
处理带自定义数字键的数组
如果原数组的数字键不是从0连续排列的,处理后也会重置为连续的0开始索引:
<?php
$numArray = [
3 => 'a',
5 => 'b',
8 => 'c'
];
$result = array_values($numArray);
print_r($result);
// 输出结果:
// Array
// (
// [0] => a
// [1] => b
// [2] => c
// )
?>
处理多维数组
需要注意array_values()只会处理第一层的数组,不会递归处理子数组的键名:
<?php
$multiArray = [
'first' => ['a', 'b'],
'second' => ['c', 'd']
];
$result = array_values($multiArray);
print_r($result);
// 输出结果:
// Array
// (
// [0] => Array
// (
// [0] => a
// [1] => b
// )
// [1] => Array
// (
// [0] => c
// [1] => d
// )
// )
?>
使用注意事项
- 该函数不会修改原数组,而是返回一个新的数组,原数组的结构和内容保持不变。
- 如果输入的数组为空,函数会返回一个空的数组,不会报错。
- 函数的参数必须是数组类型,如果传入其他类型的值,PHP会抛出类型错误的警告。
- 如果需要同时获取数组的键和值,可以使用array_keys()获取键名,或者直接使用遍历的方式处理,array_values()仅返回纯值数组。
常见使用场景
这个函数在很多场景下都非常实用,比如需要对数组的值进行顺序遍历但不关心原键名的时候,或者需要将关联数组转换为简单的索引数组方便后续使用array_splice()等依赖连续索引的函数处理时,都可以优先使用array_values()快速完成数组的预处理。
PHParray_values数组操作数组值提取修改时间:2026-07-13 01:30:20