2012-07-19 130 views
-2
$city = $_GET['cityselect']; 
add_query_arg(array ('city' => $city, 'key' => 'value'); 

基本上我想檢查$ city是否存在,如果不是,我想刪除key和value,即'city' => $city,(包含逗號)。所以輸出將是:檢查數組值是否存在

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

任何想法?

+1

嘗試google爲「PHP密鑰存在」。 – 2012-07-19 16:27:06

+0

爲什麼-1這個?我已經在尋找解決方案,但都沒有成功。另外nickb的回答是正確的。 – Adige72 2012-07-19 16:35:09

回答

0

只有添加city關鍵,如果它被設置,如下所示:

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

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

add_query_arg($arg); 
+0

這樣做。感謝您的快速回答(: – Adige72 2012-07-19 16:33:35

0

試試這個

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

add_query_arg($data); // .. 
-1

您可以使用array_search()(搜索給定值的數組,並返回相應的鍵如果成功)。

+0

啊,我認爲數組密鑰是未知的,無視這個答案。 – mogelbrod 2012-07-19 16:31:11

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']; 
} 

UPDATE:你也可以使用array_filter()後,您刪除具有缺失值的所有索引」重新填寫它:

$yourArray = array_filter($yourArray); 

這將返回一個數組,其中所有空值被剝離;在你的情況下,如果city是空的,它將從數組中移除。

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如果適用於您的情況。