public static function merge_defaults($values, $defaults, $force = false) { if (!ITUtility::is_associative_array($defaults)) { if (!isset($values)) { return $defaults; } if (false === $force) { return $values; } if (isset($values) || is_array($values)) { return $values; } return $defaults; } foreach ((array) $defaults as $key => $val) { if (!isset($values[$key])) { $values[$key] = null; } $values[$key] = ITUtility::merge_defaults($values[$key], $val, $force); } return $values; }