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


How can you remove last parameter from a $_GET URL when using the QUERY_STRING?

由于我使用的是foreach循环,因此显示了所有参数。我有几个参数,我想从我的URL中包括,但我想删除最后一个参数和它的值自动显示。代码如下:

 <?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"];
?>

URL是这样的:

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

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

感谢

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

$params = $_GET;
unset($params['total']);
// $params is now array('betSlip' => 'Juve', 'betSlip' => 'Milan');

只需使用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"];