检查是否存在数组值

时间:2012-07-19 16:24:54

标签: php

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

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

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

有什么想法吗?

5 个答案:

答案 0 :(得分:0)

如果设置了密钥,则只添加city密钥,如下所示:

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

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

add_query_arg( $arg);

答案 1 :(得分:0)

试试这个

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

add_query_arg($data); // ..

答案 2 :(得分: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为空,则会从数组中删除。

答案 3 :(得分: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

答案 4 :(得分:-1)

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