合并两个多维关联数组

4

我正在试图将两个不同查询的结果合并输出到一个模板中,这让我感到困扰。

我尝试合并model_data和entry_data中对应的子数组以获得desired_result。然后,我将迭代desired_result并将值打印到模板中。

非常感谢任何帮助。

model_data

array(2) {
  [0]=>
  array(2) {
    ["entry_id"]=> string(3) "192"
    ["field_id_49"]=> string(10) "Model Name"
  }
  [1]=>
  array(2) {
    ["entry_id"]=> string(3) "193"
    ["field_id_49"]=> string(5) "MN123"
  }
}

entry_data

array(2) {
  [0]=>
  array(2) {
    ["uri"]=> string(24) "/products/product-title/"
    ["title"]=> string(13) "Product Title"
  }
  [1]=>
  array(2) {
    ["uri"]=> string(22) "/products/lorem-ipsum/"
    ["title"]=> string(11) "Lorem Ipsum"
  }
}

期望结果

array(2) {
  [0]=>
  array(4) {
    ["entry_id"]=> string(3) "192"
    ["field_id_49"]=> string(10) "Model Name"       
    ["uri"]=> string(24) "/products/product-title/"
    ["title"]=> string(13) "Product Title"      
  }
  [1]=>
  array(4) {
    ["entry_id"]=> string(3) "193"
    ["field_id_49"]=> string(5) "MN123"      
    ["uri"]=> string(22) "/products/lorem-ipsum/"
    ["title"]=> string(11) "Lorem Ipsum"
  }
}

你确定期望的结果是正确的吗?我实际上无法理解这个逻辑。 - Narcis Radu
我需要将model_data [0]与entry_data [0]合并,将model_data [1]与entry_data [1]合并。两者都将继续添加数组,因此数组键需要递增。 - Judd Lyon
2个回答

8
foreach($model_data as $key => $value){
    $result[$key] = array_merge($entry_data[$key], $model_data[$key]);
}

只适用于二维数组。对我来说已经足够了。 - ProblemsOfSumit
是的,但你总是可以在函数内部递归foreach。 - Prof

0
您可以使用array_replace_recursive函数合并这些数组。 以下是一个示例:
$desired_result = array_replace_recursive($model_data, $entry_data);

var_dump($desired_result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接