php中的数组没有索引怎么办_php无索引数组array_values重置键名法【教程】

admin 百科 12
使用array_values()可最直接重置键名为连续数字索引,如$arr=['a'=>10,'c'=>30,2=>20]经array_values()处理后变为[0=>10,1=>20,2=>30]。

php中的数组没有索引怎么办_php无索引数组array_values重置键名法【教程】-第1张图片-佛山资讯网

如果您在PHP中处理数组时发现键名混乱、缺失或不连续,导致无法通过数字索引安全访问元素,则可能是由于数组经过unset()、array_diff()等操作后保留了原始键名。以下是重置键名为连续数字索引的几种可靠方法:

一、使用array_values()函数重置键名

array_values()会丢弃原数组的所有键名,仅保留值,并以0开始重新分配连续的整数索引。这是最直接且无副作用的标准方式。

1、定义一个键名不规则的数组,例如:$arr = ['a' => 10, 'c' => 30, 2 => 20];

2、调用array_values()函数处理该数组:$indexed = array_values($arr);

立即学习“PHP免费学习笔记(深入)”;

3、此时$indexed的键名已变为0, 1, 2,对应值为10, 20, 30

二、使用for循环配合array_merge()构造新数组

array_merge()在接收纯数值索引数组时,会自动重新编号;若输入含字符串键的数组,它会保留字符串键但重排数字键。因此可先用空数组与原数组合并,触发重排机制。

1、声明原始数组:$arr = ['x' => 5, 100 => 15, 'y' => 25];

2、执行合并操作:$reset = array_merge([], $arr);

3、验证结果:array_keys($reset)将返回[0, 1, 2]

标签: php

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~