[英]PHP: Check if array key has value
我有以下數組( $post_options
),它可以以各種形式出現,關鍵是動態的:
可能是這樣的:
array(1){[95] =>字符串(2)“ 25”}
可能是這樣,密鑰可以是任何東西:
array(1){[05] =>字符串(2)“”}
我想添加一條控制語句,以控制第一個鍵元素中的值是否具有值。
我有以下代碼:
if (!isset($post_options[0])) {
// value is empty
var_dump($post_options);
}
else {
// value has value
echo 'Option Selected';
}
但這是行不通的,當設置和未設置值時,它返回true。 這里有什么解決方案? 謝謝
因此,如果數組看起來像這樣(第一個鍵的值為空):
array(1){[05] =>字符串(2)“”}
我想var_dump();
在這種情況下
根據您的確切要求,有三種選擇。
array_key_exists($key, $array)
這是最簡單的選項。 它返回true
,如果數組有給定的密鑰,否則返回false
。
isset($array[$key])
比array_key_exists
嚴格一點,因為它還要求分配給鍵的值不為null
。
!empty($array[$key])
(請注意!
),這是最嚴格的選項,因為它要求該值不能為空值(即,不能為null
, false
, 0
, '0'
等)。
同樣,還有其他選擇,具體取決於確切的要求。 在我看來,您正在尋找!empty
選項,因為它會(尤其是)拒絕空字符串。
如果您不知道數組的第一個鍵-例如,使用array_keys
獲取數組的所有鍵。
$ar = array('95' => 'val');
$keys = array_keys($ar);
$first_item = $ar[$keys[0]];
var_dump($first_item); // outputs: string(3) "val"
另一個選擇可以是current
函數,它將返回您數組的當前元素。 考慮到您不移動數組指針,代碼可以是:
$ar = array('95' => 'new_val', '02' => 'val2');
$cur = current($ar);
var_dump($cur); // outputs: string(7) "new_val"
之后,您可以使用標准的empty
函數進行檢查:
if (empty($cur))
要么
if (empty($first_item))
嘗試這個
if (!isset($post_options[0])) { // value is empty
if(!empty($post_options[0])) {
var_dump($post_options);
}
}
isset會檢查數組位置是否存在,不檢查是否包含或不包含值。
你最好看看空函數來做到這一點
if (empty($post_options[0])) {
// value is empty
var_dump($post_options);
} else {
// value has value
echo 'Option Selected';
}
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.