PHP多维数组结构调整:将嵌套子数组转为一维索引数组
PHP数组结构修正方案
问题核心
当前代码生成的数组内层以字母为键,且每个值被包裹成单元素子数组,不符合目标的「数字索引一维数组直接存值」要求,同时外层索引需要调整为[2,3,4]。
修改后的代码
$array = []; // 外层循环直接对应目标索引2、3、4 for ($row = 2; $row <= 4; $row++) { $letter = "A"; // 初始化当前行的空数组,用于存储数字索引的元素 $array[$row] = []; for ($contt = 0; $contt < 13; $contt++) { // 直接追加值到数组,自动生成0开始的数字索引 $array[$row][] = $sheet->getCell("$letter$row")->getValue(); $letter++; } } return $array;
关键改动说明
- 外层索引调整:把循环起始值从1改成2,结束值从3改成4,直接生成目标的外层索引[2,3,4],无需额外映射。
- 内层索引修正:不再用字母
$letter作为键,改用[]追加元素,PHP会自动为数组生成从0开始的连续数字索引。 - 值结构简化:去掉值外面的
[],直接存入单元格的原始值,避免生成单元素子数组。
验证结果
修改后生成的数组结构完全匹配目标示例:外层键为2、3、4,每个键对应一个数字索引的一维数组,元素直接存储单元格的值。
内容的提问来源于stack exchange,提问作者Myers
相关产品推荐
相关产品推荐

