GET のパラメータを減らす

フォームのパラメータは空欄でも渡ってくるので勿体ない。そんな時はこんな処理。。でも、パラメータが空なのがデフォルトを意味する事もあるので、使いどころがあまり無いかも。

if ($_SERVER["REQUEST_METHOD"] === "GET") {
    $has_empty_param = false;
    foreach ($_GET as $label => $value) {
        if (array_key_exists($label, $_GET) && ($value === '')) {
            $has_empty_param = true;
        }
    }

    if ($has_empty_param) {
        $param_peers = array();
        foreach ($_GET as $label => $value) {
            if (array_key_exists($label, $_GET) && ($value !== '')) {
                $param_peers[] = $label."=".$value;
            }
        }
        $param_str = join('&', $param_peers);
        header("Location: ?$param_str");
    }
}