如何在php中添加和操作当前url的现有GET变量?
嗨,我有这样的网址如何在php中添加和操作当前url的现有GET变量?,php,url,get,Php,Url,Get,嗨,我有这样的网址 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
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**'"
http\u build\u查询($\u GET+['sort'=>'anyvalue'])
应该有用
编辑
数组的加号可以做到这一点
$a = ['a' => 1, 'b' => 2, 'c' => 3];
$b = ['a' => 4, 'd' => 5];
$res = $a + $b;
它从$b
向数组$a
添加$a
中不存在的键
这是$res
变量:
array(4) {
'a' =>
int(1)
'b' =>
int(2)
'c' =>
int(3)
'd' =>
int(5)
}
和http\u build\u query
函数从数组构建查询字符串。
因此http\u build\u query($res)
将是:
a=1&b=2&c=3&d=5
在您的情况下,您可以这样使用它:
<a href="?<?php echo http_build_query($_GET + ['sort' => '**AnyValue**']); ?>">link</a>
Hi@Petr我是PHP新手,第一次使用这个概念。你能再补充一点关于如何使用它的细节吗??谢谢你,谢谢你。但它给出了一个PHP错误“解析错误:语法错误,意外“[”,您使用哪个PHP版本?只需将['sort'=>'**AnyValue**]
替换为array($sort'=>'**AnyValue**')
哦,我的错。对不起。忘记查询字符串实际上是字符串:D试试这个:http\u build\u查询($\u GET+array($sort'=>'abcd');
<a href="?<?php echo http_build_query($_GET + ['sort' => '**AnyValue**']); ?>">link</a>