PHP-使用foreach循环在关联数组中自动添加记录

PHP-使用foreach循环在关联数组中自动添加记录,php,arrays,foreach,add,Php,Arrays,Foreach,Add,我想使用foreach循环自动将记录添加到新的关联数组中。我有一个数组,其中包含以下DOM元素的名称: $DOM = array('element2','element22','element222','element2222'); 和一个新的关联数组: $NEW = array( 'element1' => '', 'element2' => '', 'element3' => array( 'element33' => arr

我想使用foreach循环自动将记录添加到新的关联数组中。我有一个数组,其中包含以下DOM元素的名称:

$DOM = array('element2','element22','element222','element2222');
和一个新的关联数组:

$NEW = array(
    'element1' => '',
    'element2' => '',
    'element3' => array(
        'element33' => array(
            'element333' => ''
        )
    )
);
现在使用foreach循环将向$new array添加一个新记录/数组:

foreach($DOM as $name){
    //Do something
}
预期结果:

$NEW = array(
    'element1' => '',
    'element2' => array(
        'element22' => array(
            'element222' => array(
                'element2222' => ''
            )
        )
    ),
    'element3' => array(
        'element33' => array(
            'element333' => ''
        )
    )
);

你可以这样做吗?自动化此过程?

您可以通过将数组作为引用传递来修改foreach循环中的数组:

foreach($array as &$value)
    $value[] = $DOM
编辑:


您可以使用
array\u push()
函数

检查此mabe帮助:

$DOM = array('element2','element22','element222','element2222');
$NEW = array('element1' => '', 'element2' => '', 'element3' => array('element33' => array('element333' => '')));
array_push($NEW, $DOM);

print_r($NEW);
请看这里:

或在此:


如果我理解正确,
$DOM
包含用于创建嵌套数组的键,其中最深层的值为空字符串。因此,您必须创建这样的数组:

$new_array = array();
$last = &$new_array;
foreach($DOM as $name){
    $last[$name] = array();
    $last = &$last[$name];
}
$last = '';
unset($last);
并将其与
$NEW
递归合并:

$NEW = array_merge_recursive($NEW, $new_array);

我猜你有一条规则,在这里你不能有一个
元素22
,而没有
元素2
?-或者-如果
element22
存在于
$DOM
中,并且
element2
也已创建,您是否正在体验?我尝试为多维数组添加值。有时有一个父级,并且只添加了子级,有时您必须创建整个路径,如果您可以在我的示例中显示它的外观,那么?我第一次接触到循环中的&$。
$NEW = array_merge_recursive($NEW, $new_array);