嗨我有这样的网址......
www.example.com/list.php?type=vehicles&stype=Cars
www.example.com/list.php?type=vehicles&stype=Cars&loc=Ludhiana
现在我想根据价格,型号和访问量对所有结果进行排序。我使用
$sort="id";
if(isset($_GET['sort'])){
if($_GET['sort']=='P-ASC'){ $sort = "price ASC"; }
elseif($_GET['sort']=='P-DESC'){ $sort = "price DESC"; }
elseif($_GET['sort']=='R-ASC'){ $sort = "model ASC"; }
elseif($_GET['sort']=='R-DESC'){ $sort = "model DESC"; }
elseif($_GET['sort']=='V-ASC'){ $sort = "visits ASC"; }
elseif($_GET['sort']=='V-DESC'){ $sort = "visits DESC"; }
}
现在我想在url的末尾添加sort变量来排序结果。 e.g。
www.example.com/list.php?type=vehicles&stype=Cars&sort='**ANYVALUE**'
www.example.com/list.php?type=vehicles&stype=Cars&loc=Ludhiana&sort='**ANYVALUE**'
对于href我正在使用哪个对我来说绝对合适...
<a href="?<?php echo $_SERVER['QUERY_STRING']; ?>&sort='**Anyvalue**'"
当我尝试操纵排序值时存在问题,例如我有两个href
<a href="?<?php echo $_SERVER['QUERY_STRING']; ?>&sort='P-ASC'"
<a href="?<?php echo $_SERVER['QUERY_STRING']; ?>&sort='P-DESC'"
当我转到第一个网址时,它工作正常,当我在使用第一个网址后转到第二个网址时,URL会在网址中添加另一个排序变量,在URL中输入两个排序变量。我想要的是
答案 0 :(得分:0)
http_build_query($_GET + ['sort' => 'anyvalue'])
应该有效
修改强>
数组的加号执行此操作
$a = ['a' => 1, 'b' => 2, 'c' => 3];
$b = ['a' => 4, 'd' => 5];
$res = $a + $b;
它向来自$a
的数组$b
添加了$a
这是$res
变量:
array(4) {
'a' =>
int(1)
'b' =>
int(2)
'c' =>
int(3)
'd' =>
int(5)
}
http_build_query
函数从数组构建查询字符串。
所以http_build_query($res)
将是:
a=1&b=2&c=3&d=5
在您的情况下,您可以像这样使用它:
<a href="?<?php echo http_build_query($_GET + ['sort' => '**AnyValue**']); ?>">link</a>