PHP三级数组自定义转置:按最深层键重组数组求助
PHP数组结构重构解决方案
你的代码问题出在给目标数组赋值时多嵌套了一层。原代码中$arr[$k][] = [$v['code'] => $v['customer_costs'][$k]]会为每个$k对应的数组添加一个子数组元素,而不是直接将快递code作为键绑定费用值。
修改后的代码如下:
$arr = []; foreach ($array as $v) { foreach ($v['customer_costs'] as $k => $cost) { $arr[$k][$v['code']] = $cost; } }
代码逻辑说明
- 外层循环遍历每个快递商条目,获取快递code和对应的费用列表
- 内层循环直接遍历费用列表的键值对(键为22/11,值为对应费用)
- 将费用值直接赋值到
$arr[$k][$v['code']],这样每个顶级键(22/11)对应的数组中,会直接以快递code为键、费用为值,完全匹配你需要的结构。
执行后用var_dump($arr)输出,就能得到预期的数组结构。
内容的提问来源于stack exchange,提问作者Pavlo
相关产品推荐
相关产品推荐

