如何在使用QUERY_STRING时从$ _GET URL中删除最后一个参数?

时间:2015-06-26 12:39:47

标签: php parsing url parameters query-string

由于我使用了foreach循环,因此显示了所有参数。我有几个参数要包含在我的网址中,但我想删除最后一个参数及其自动显示的值。代码如下:

 <?php   

$query  = explode('&', $_SERVER['QUERY_STRING']);
$params = array();

foreach( $query as $param )
{ 
  list($name, $value) = explode('=', $param, 2);
  echo $params[urldecode($name)][] = urldecode($value);
  echo "<br/>";
}

  echo "<br/> Total amount placed: ".$total = $_GET["total"];

?>

网址是这个:

confirmation.php?betSlip=Juve&betSlip=Milan&total=0.43

正如您所看到的,url由betSlip参数中的几个项组成,它包含所有项的总和。我想删除foreach循环中显示的总数,并且只有在我调用它时才能显示它。

由于

2 个答案:

答案 0 :(得分:1)

DavidDomain是对的。您可以选择取消设置数组中的特定键值对,如果您不能保证它始终是最后一个数组元素。

$params = $_GET;

unset($params['total']);

// $params is now array('betSlip' => 'Juve', 'betSlip' => 'Milan');

答案 1 :(得分:0)

只需使用array_pop删除$query数组的最后一个元素。鉴于total永远是最后一个参数。

    $params = "betSlip=Juve&betSlip=Milan&total=0.43";
    $query  = explode('&', $params);
    array_pop($query); // remove the last element of $query
    $params = array();

    foreach( $query as $param )
    {
        list($name, $value) = explode('=', $param, 2);
        echo $params[urldecode($name)][] = urldecode($value);
        echo "<br/>";
    }

    echo "<br/> Total amount placed: ".$total = $_GET["total"];