PHP-使用foreach循环在关联数组中自动添加记录
我想使用foreach循环自动将记录添加到新的关联数组中。我有一个数组,其中包含以下DOM元素的名称: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
$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);