假设您要让用户提供信息。
Array 1
但并非所有都是必需的。所以你有默认值。
Array 2
PHP 是否有一个函数可以覆盖 Array 2
的所有数组值,这取决于它们是否在 Array 1
中提供且不为空?
最佳答案
我认为您正在寻找的是 array_replace_recursive
,尤其是当您的“默认值”可能是一个深度超过一层的关联数组时。
$finalArray = array_replace_recursive(数组 $defaults, 数组 $inputOptions)
下面是一个示例,该示例将一个可选的选项数组作为一个函数,并根据这些选项“opts
”和您指定的 defaults
的结果进行一些处理:
function do_something() {
$args = func_get_args();
$opts = $args[0] ? $args[0] : array();
$defaults = array(
"second_level" => array(
"key1" => "val1",
"key2" => "val2"
),
"key1" => "val1",
"key2" => "val2",
"key3" => "val3"
);
$params = array_replace_recursive($defaults, $opts);
// do something with these merged parameters
}
php.net引用文档是here
关于php - 将 "Defaults"数组与 "Input"数组合并? PHP 哪个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16391848/