function awp_blend_option_array($option_prefix = '', $option_name, $defaults, $key_dimensions = 1, $user_opt_val = -1)
{
    if (!is_array($defaults)) {
        $defaults = array();
    }
    if (-1 == $user_opt_val) {
        $user_opt_val = get_option($option_prefix . $option_name);
    }
    if (!is_array($user_opt_val)) {
        $user_opt_val = array();
    }
    if (isset($defaults[$option_name])) {
        $user_opt_val = agp_merge_md_array($defaults[$option_name], $user_opt_val, $key_dimensions);
    }
    return $user_opt_val;
}
function agp_merge_md_array($arr_default, $arr_custom, $key_dimensions = 1, $current_dimension = 1)
{
    if ($current_dimension == $key_dimensions) {
        return array_merge($arr_default, $arr_custom);
    } else {
        $opt_keys = array_merge(array_keys($arr_default), array_keys($arr_custom));
        foreach ($opt_keys as $key_name) {
            if (!isset($arr_custom[$key_name])) {
                $arr_custom[$key_name] = array();
            }
            if (!isset($arr_default[$key_name])) {
                $arr_default[$key_name] = array();
            }
            $arr_custom[$key_name] = agp_merge_md_array($arr_default[$key_name], $arr_custom[$key_name], $key_dimensions, $current_dimension + 1);
        }
        return $arr_custom;
    }
}