PHP通过提供较小的数组更新多维数组,覆盖现有的键,但保留其他数据
对不起,我的问题太长了。这将更清楚我到底想做什么PHP通过提供较小的数组更新多维数组,覆盖现有的键,但保留其他数据,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,对不起,我的问题太长了。这将更清楚我到底想做什么 请考虑这个相对简单的多维数组 'domain1.com' => array (size=9) 'serverip' => null 'dedicatedip' => null 'username' => null 'password' => null 'web_template' => null 'data
请考虑这个相对简单的多维数组
'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
请注意,第一级键是域名,最后一个值“billing”也是一个数组
我可以使用这个简化的函数使用array\u 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 );
但我遇到的问题是,当我尝试更新计费子阵列中的任何内容时。对于eg
$array = array(
'billing' => array('upgrade' => true),
);
这将覆盖整个计费子阵列,我将丢失“vip”值
我已经研究了array\u merge\u recursive,但它只是让我有点困惑
我希望能够将一个数组和域名一起传递到一个函数中,它将在不丢失任何信息的情况下将该数组覆盖在较大的数组之上。任何帮助都将不胜感激 我在上找到一篇博文
简单地用array\u replace\u recursive替换array\u merge似乎已经解决了这个问题