PHP如何将常规结构数组追加到多维数组的嵌套数组中
解决多维数组与常规数组的对应追加问题
嘿,我来帮你搞定这个数组合并的需求!首先咱们先把你给出的两个数组用标准PHP语法明确下来,方便后续操作:
// 多维数组 $multiArray = [ [ ['james' => 1, 'kevin' => 2], ['joe' => 1, 'jim' => 2] ], [ ['jill' => 1, 'john' => 2], ['janet' => 1, 'clarence' => 2] ] ]; // 常规结构数组 $regularArray = [ ['total_stuff' => 75210], ['total_stuff' => 95640] ];
接下来,要实现把$regularArray里的元素对应索引追加到$multiArray的嵌套数组中——也就是让$multiArray[0]下的两个子数组都带上total_stuff => 75210,$multiArray[1]下的两个子数组都带上total_stuff => 95640。可以用双层循环来实现:
// 遍历多维数组的外层元素,同时获取索引 foreach ($multiArray as $index => &$outerItem) { // 确保常规数组对应索引存在元素 if (isset($regularArray[$index]['total_stuff'])) { $total = $regularArray[$index]['total_stuff']; // 遍历外层元素下的每个嵌套子数组,追加total_stuff foreach ($outerItem as &$innerItem) { $innerItem['total_stuff'] = $total; } // 释放内层引用,避免后续操作出问题 unset($innerItem); } } // 释放外层引用 unset($outerItem); // 输出处理后的结果看看 print_r($multiArray);
代码解释
- 用带引用的
foreach(&$outerItem、&$innerItem)直接修改原数组,不用额外创建新数组; - 先通过外层索引
$index匹配常规数组的对应元素,确保元素存在后再获取total_stuff的值; - 内层循环把值追加到每个嵌套子数组中;
- 最后释放引用,防止后续对数组的操作出现意外的引用传递问题。
处理后的多维数组结构会变成这样:
Array ( [0] => Array ( [0] => Array ( [james] => 1 [kevin] => 2 [total_stuff] => 75210 ) [1] => Array ( [joe] => 1 [jim] => 2 [total_stuff] => 75210 ) ) [1] => Array ( [0] => Array ( [jill] => 1 [john] => 2 [total_stuff] => 95640 ) [1] => Array ( [janet] => 1 [clarence] => 2 [total_stuff] => 95640 ) ) )
内容的提问来源于stack exchange,提问作者WA Martin
相关产品推荐
相关产品推荐

