$foo = array(
'1' => '2',
'3' => array(
'4' => '5'
),
'6' => array(
'7' => '8',
'9' => '10',
'11' => array(
'12' => '13',
'14' => '15'
)
)
);
$bar = array(
'1',
'6' => array(
'7',
'11' => array(
'12'
)
)
);
Foo是一個數組,我必須編輯,Bar編輯我需要做的。如何將某些數組元素「合併」到同一數組的元素中?
我必須在包含Bar中指向的元素的Foo數組中創建另一個元素,並從Foo中刪除原件。
因此,與陣列,最終陣列應該是:
Array(
'3' => array(
'4' => '5'
),
'6' => array(
'9' => '10',
'11' => array(
'14' => '15'
)
),
'merged' => array(
'1' => '2',
'6' => array(
'7' => '8',
'11' => array(
'12' => '13'
)
)
)
)
我已經建立這個遞歸函數,但只適用於該陣列的第一層次:
foreach($bar AS $key => $value){
if(is_array($value)){
s($foo, $key, $value);
}else{
$foo['merged'][$value] = $foo[$value];
unset($foo[$value]);
}
}
function s(&$form, $key, $value){
if(is_array($value)){
foreach($value AS $k => $v){
s($form, $k, $v);
}
}else{
$form['merged'][$value] = $form[$value];
unset($foo[$value]);
}
}
任何想法?