/** * Construct base string from multiple assoc arrays (sorted before joined) * @return string */ public static function construct_base_string() { $args = func_get_args(); if (count($args) == 1 && is_array($args[0]) && isset($args[0][0]) && is_array($args[0][0])) { $args = $args[0]; } $keys = array(); $values = array(); foreach ($args as $assoc_array) { $keys = array_merge($keys, array_keys($assoc_array)); $values = array_merge($values, array_values($assoc_array)); } array_multisort($keys, SORT_ASC, SORT_STRING, $values, SORT_STRING, SORT_ASC); return SPUtils::join_key_values("=", "&", $keys, $values); }