我有一个数组,为我的插件保留一些默认设置.随着插件的发展,设置可能会被删除或从版本添加到版本.
这是一个示例默认数组:
$defaults = array(
'setting1' => 'somevalue',
'setting2' => 'somevalue',
'setting4' => 'somevalue',
);
Run Code Online (Sandbox Code Playgroud)
以下是实时设置数据的示例,需要为新的$ default结构更新结构:
$livesettings = array(
'setting1' => 'foo',
'setting2' => 'bar',
'setting3' => 'foobar',
);
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个函数,我可以传递两个数组,并更新livesettings的结构以匹配$ defaults.
所以在这种情况下,在livesettings:
somevalue他们在PHP中的任何功能可以一次完成吗?如果是的话是什么?如果没有,我将如何使用PHP代码实现这一目标?
您需要array_intersect_key()和array_merge()的组合.
$livesettings = array_intersect_key($livesettings, $defaults);
$livesettings = array_merge($defaults, $livesettings);
Run Code Online (Sandbox Code Playgroud)
第一个函数将删除所有未找到的键$defaults,而第二个函数将添加$defaults未找到的项$livesettings