Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中添加和操作当前url的现有GET变量?_Php_Url_Get - Fatal编程技术网

如何在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>