PHP中如何给对象数组添加从1开始的键实现索引数组转关联数组
PHP 实现从0起始索引数组转1起始键关联数组
错误代码问题说明
你写的代码存在两个核心问题:
array_push()方法要求第一个参数必须是数组类型,你传入整数$i会触发参数类型错误,属于语法使用错误array_push($arr_result, $row)会自动为新元素分配从0开始递增的数字索引,无法实现自定义键的需求
正确实现方式
遍历赋值方案(适合结果集遍历场景)
直接给数组指定自定义键赋值即可,无需使用array_push:
$arr_result = []; $i = 1; while ($row = fetchRow($result)) { $arr_result[$i] = $row; $i++; }
已有索引数组的快速转换方案
如果你已经拿到了原始的0起始索引数组,可以用array_combine配合range快速生成目标结构,不用手动遍历:
// $origin_arr 是你拿到的原始索引数组 $target_arr = array_combine(range(1, count($origin_arr)), $origin_arr);
range(1, count($origin_arr)) 会生成从1开始、长度和原始数组一致的键数组,和原始数组合并后就能得到目标结构,这是array_combine的正确用法。
结果验证
执行完成后打印$arr_result即可看到键从1开始的关联数组结构,序列化输出json时也会匹配你要求的对象格式。
内容的提问来源于stack exchange,提问作者codeapprentice
相关产品推荐
相关产品推荐

