$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 i düzenlemek i yapmak için gereken düzenlemeleri Bar zorunda olduğu bir dizidir.
Ben Bar'da işaret öğeleri içeren Foo dizisindeki başka bir öğe oluşturun ve Foo gelen orijinalleri silmek zorunda.
Yani, dizi, son dizisi olmalıdır:
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'
)
)
)
)
Ben bu özyinelemeli işlevi inşa ettik, ancak dizinin ilk seviye için çalışır:
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]);
}
}
Herhangi bir fikir?