PHP合并同键多值数组:将循环生成的数组重组为键值对应结构
解决方案
看起来你现在的问题是每次循环都在创建新的单元素数组,没法把同一键对应的多个值合并成一个子数组对吧?调整一下数组的赋值逻辑就能搞定:
// 先初始化一个空数组存最终结果 $array = []; foreach ($difference AS $j) { $fv = $cate->getFilterValueByFeatureID($j); foreach ($fv AS $z) { // 把当前值追加到对应键的子数组里 $array[$j][] = $z; } } // 循环结束后再输出完整结果 var_dump($array);
代码逻辑说明:
- 先初始化
$array = []作为最终容器; $array[$j][] = $z是核心:如果$j还没在$array里,会自动创建这个键并初始化一个空数组,再把$z加进去;如果$j已经存在,就直接把$z追加到对应的子数组末尾;- 最后在循环外执行
var_dump,就能得到你想要的结构:同一键对应一组值的嵌套数组。
运行后你会得到这样的输出:
array(2) { [6]=> array(2) { [0]=> int(15) [1]=> int(20) } [8]=> array(3) { [0]=> int(26) [1]=> int(27) [2]=> int(33) } }
内容的提问来源于stack exchange,提问作者M.Aldein
相关产品推荐
相关产品推荐

