-2
$city = $_GET['cityselect'];
add_query_arg( array ( 'city' => $city, 'key' => 'value' );

基本上我想检查 $city 是否存在,如果不存在,我想同时删除键和值,即'city' => $city,(包括逗号)。所以输出将是:

add_query_arg( array ( 'key' => 'value' );

任何的想法?

4

5 回答 5

0

仅在city已设置的情况下添加密钥,如下所示:

$arg = array( 'key' => 'value');

if( isset( $_GET['cityselect'])) 
    $arg['city'] = $_GET['cityselect'];

add_query_arg( $arg);
于 2012-07-19T16:27:42.353 回答
0

试试这个

$data = array();
if(isset($_GET["cityselect"])){
 $data["city"] = $_GET["cityselect"];
}

add_query_arg($data); // ..
于 2012-07-19T16:27:50.363 回答
0

如果您尝试删除city它不存在,您可以这样做:

$city = isset($_GET['cityselect']) ? $_GET['cityselect'] : null;
if (empty($city)) unset($yourArray['city']);

这假设您已经有一个数组 ,$yourArray预定义了一个city索引。

我建议您仅city在验证后才插入索引,例如:

if (isset($_GET['cityselect']) && !empty($_GET['cityselect'])) {
    $yourArray['city'] = $_GET['cityselect'];
}

更新:完成填充后,您还可以使用array_filter()删除所有缺失值的索引:

$yourArray = array_filter($yourArray);

这将返回一个删除了所有空值的数组;在您的情况下,如果city为空,它将从数组中删除。

于 2012-07-19T16:29:21.440 回答
0

对于简短但丑陋的单行版本:

add_query_arg($args = (!empty($_GET['cityselect'])) ? array('city' => $_GET['cityselect'], 'key' => 'value') : array('key' => 'value');

稍微优雅一点:

if(!empty($_GET['cityselect']))
    add_query_arg(array('city' => $_GET['cityselect'], 'key' => 'value'));
else
    add_query_arg(array('key' => 'value'));

已假定使用,但如果适用于您的情况,请empty替换。isset

于 2012-07-19T16:36:45.497 回答
-1

您可以使用array_search()(在数组中搜索给定值,如果成功则返回相应的键)。

于 2012-07-19T16:27:56.527 回答