【问题标题】:How to merge 2 arrays - nest one array into another如何合并 2 个数组 - 将一个数组嵌套到另一个数组中
【发布时间】:2016-04-20 09:22:54
【问题描述】:

我有一个数组:

$form['info'] = array(...);
$form['container'] = array(...);

我还有另一个数组:

$container['item_1'] = array(...);
$container['item_2'] = array(...);

我想得到这样的结构:

$form['info']
$form['container']['...']
$form['container']['item_1']
$form['container']['item_2']

我如何合并 $form 和 $container 数组来实现这一点?我需要将 $container 数组中的所有项目嵌套/添加到 $form['container'] 变量中。 array_merge() 似乎不能以这种方式工作。

【问题讨论】:

  • 您使用什么代码(确切地说)来尝试合并?可以提供源码吗?
  • 你是如何使用array_merge()的?
  • 源码太复杂所以我做了这个简单的例子。
  • @dr_debug array_merge($form, $container);
  • $form['container']['item_1'] 它将为您提供包含容器和 item1 值的合并数组。对吗?

标签: php arrays merge


【解决方案1】:

为什么array_merge() 不起作用?据我了解,您的任务是将$form['container']$container 合并。 array_merge() 可以处理这个问题。

$form['container'] = array_merge($form['container'], $container);

【讨论】:

  • 是的,这是一个正确的解决方案。
【解决方案2】:

这应该处理它:

foreach($container as $key => $value){
    $form['container'][$key] = $value;
}
  1. 迭代您的 $container 并获取其密钥值对
  2. 将它们附加到您的$form

【讨论】:

  • 谢谢,这行得通。我认为这种合并没有原生的php函数。
【解决方案3】:

使用这个

<?php
$form["info"] = array('info');
$form["container"] = array('container');
$container['item_1'] = array('1');
$container['item_2'] = array('2');

foreach($container as $k=>$f)
{
    $form['container'][$k] = $f;
}
print_r($form);
?>

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多