除了奥托的回答之外。
如果您有多维选项数组,但仍希望它与默认值数组合并,请使用以下函数代替wp_parse_args()
:
<?php
function meks_wp_parse_args( &$a, $b ) {
$a = (array) $a;
$b = (array) $b;
$result = $b;
foreach ( $a as $k => &$v ) {
if ( is_array( $v ) && isset( $result[ $k ] ) ) {
$result[ $k ] = meks_wp_parse_args( $v, $result[ $k ] );
} else {
$result[ $k ] = $v;
}
}
return $result;
}
例如,
<?php
$defaults = array(
\'setting-1\' => array(
\'option-1\' => 1,
\'option-2\' => 0,
),
\'setting-2\' => 1
);
// Only variables are passed to the function by reference (Strict Standards warning)
$options = get_option(\'plugin_options\');
$options = meks_wp_parse_args($options, $defaults);
找到递归函数
here.