array_values() 是 php 中用于重置数组键名为连续数字索引的非破坏性函数,它丢弃原键、提取值并返回新数组;常用于关联转索引、过滤后重排、确保 jsON 数组格式及归一化处理。

array_values() 是 PHP 中用于重置数组键名的内置函数,它会返回一个新数组,其中只保留原数组的值,并将所有键重新索引为从 0 开始的连续数字索引(即“纯数字索引数组”)。
作用:把关联数组转成索引数组
当数组的键是字符串(如 ['name' => 'Tom', 'age' => 25])或不连续/非数字键(如 [5 => 'a', 10 => 'b'])时,array_values() 会丢弃原有键名,只提取值并按顺序重新编号:
$arr = ['city' => 'Beijing', 'code' => 100000, 'country' => 'China']; $new = array_values($arr); // $new 等于 ['Beijing', 100000, 'China'],键变为 0, 1, 2
对已有序索引数组也有效(但通常没必要)
如果原数组已经是数字键且连续(如 [0=>'a', 1=>'b', 2=>'c']),调用 array_values() 不会改变内容,只是“复制一份并确保键规范”:
注意点:不修改原数组,只返回新数组
array_values() 是非破坏性操作,原数组保持不变:
易通(企业网站管理系统)是一款小巧,高效,人性化的企业建站程序.易通企业网站程序是国内首款免费提供模板的企业网站系统.§ 简约的界面及小巧的体积:后台菜单完全可以修改成自己最需要最高效的形式;大部分操作都集中在下拉列表框中,以节省更多版面来显示更有价值的数据;数据的显示以Javascript数组类型来输出,减少数据的传输量,加快传输速度。 § 灵活的模板标签及模
0 立即学习“PHP免费学习笔记(深入)”;
$original = ['x' => 10, 'y' => 20]; $result = array_values($original); // $original 还是 ['x'=>10, 'y'=>20] // $result 是 [10, 20]
若需就地修改,需手动赋值:$arr = array_values($arr);
常见搭配用法
- 与
array_filter()连用:过滤后重排键(否则可能留下空缺键) - 与
json_encode()配合:确保输出为 JSON 数组(而非对象),因为 PHP 中只有「连续数字索引数组」才会被 encode 成[] - 检查是否为纯索引数组:
array_values($arr) === $arr(前提是值本身可严格比较)
基本上就这些。不复杂但容易忽略——尤其在处理用户输入、API 返回或经过 unset 的数组时,加一层 array_values() 往往能省去很多键相关的问题。