Я лично использую функцию, которая воссоздает переменные URL, кроме выбранных исключенных, вы можете найти это полезным.
Функция
<?php
function urlVarsRecreate ($exclude='') {
$urlArray = array();
foreach($_GET as $key => $val) {
if(!is_array($exclude)) {
if ($key != $exclude) {
array_push($urlArray, $key.'='.urlencode($val));
}
}
else {
if (!in_array($key, $exclude)) {
array_push($urlArray, $key.'='.urlencode($val));
}
}
}
return implode('&', $urlArray);
}
?>
Теперь, когда вы вызываете его, вы указываете, какие переменные вам не нужны, либо в массиве, либо только в строке, как показано ниже.
Называя это
<?php
//For excluding a single variable
echo '<a href="test.php?'.urlVarsRecreate('sort').'&sort=newVal">sort by newVal</a>';
//For excluding multiple variables
echo '<a href="test.php?'.urlVarsRecreate(array('year','month','pn')).'&sort=newVal">Some link</a>';'
?>
Надеюсь, это поможет, я считаю это весьма полезным и часто использую его при создании страниц с результатами поиска.