0
對不起長問題。在這裏我會更清楚我真正想要做的事情。PHP通過提供更小的數組來更新多維數組,覆蓋存在的鍵,但保留其他數據
請考慮這種相對簡單的多維數組
'domain1.com' =>
array (size=9)
'serverip' => null
'dedicatedip' => null
'username' => null
'password' => null
'web_template' => null
'datacenter' => null
'unix_time_start' => null
'is_trial' => null
'billing' =>
array (size=2)
'upgrade' => boolean false
'vip' => boolean true
'domain2.com' =>
array (size=9)
'serverip' => null
'dedicatedip' => null
'username' => null
'password' => null
'web_template' => null
'datacenter' => null
'unix_time_start' => null
'is_trial' => null
'billing' =>
array (size=2)
'upgrade' => boolean false
'vip' => boolean true
注意,第一級密鑰是域名,最後價值「結算」也是一個數組。
我可以通過使用array_merge使用這個簡化函數來更新信息的位。
function update_domain_details($domain, $array) {
$large = array(...) // as above
$current_large = $large[$domain];
$large[$domain] = array_merge($current_large, $array);
}
$array = array(
is_trial => true,
);
update_domain_details('domain1.com', $array);
但我遇到的問題是當我嘗試更新計費子數組中的任何東西。例如;
$array = array(
'billing' => array('upgrade' => true),
);
這將覆蓋整個計費子數組,並且會丟失'vip'值。
我已經看過array_merge_recursive,但它只是讓我有點困惑。
我希望能夠將一個數組和一個域名一起傳遞給一個函數,並且它會將數組覆蓋在較大的數組上,而不會丟失任何信息。任何幫助,將不勝感激。