如何将指定多维数组转为以ColourCode为键的关联数组并遍历输出
数组转换实现方案及问题解答
一、实现方法
最直接且高效的方式是通过foreach循环遍历原数组的content节点,逐个提取ColourCode作为新数组的键、ColourName作为对应值:
// 先确保json_decode返回数组(第二个参数传true) $result = json_decode($output, true); $colourMap = []; // 校验原数组结构合法性,避免报错 if (isset($result['content']) && is_array($result['content'])) { foreach ($result['content'] as $item) { // 确保每个元素包含所需字段 if (isset($item['ColourCode'], $item['ColourName'])) { $colourMap[$item['ColourCode']] = $item['ColourName']; } } } // 转换后的数组结构 print_r($colourMap);
执行后得到的目标数组如下,可直接用foreach灵活遍历输出:
Array ( [20] => Ash [1004] => Black )
二、关于array_merge_recursive()的说明
不能使用array_merge_recursive()实现该需求。这个函数的核心作用是合并多个数组,当遇到相同键名时,会将对应值合并为一个子数组,而非将指定字段转为键、另一字段转为值。它的应用场景是数组合并,而非结构转换,完全不匹配当前需求。
内容的提问来源于stack exchange,提问作者Weaell
相关产品推荐
相关产品推荐

