簡體   English   中英

PHP:檢查數組鍵是否有價值

[英]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(); 在這種情況下

根據您的確切要求,有三種選擇。

  1. array_key_exists($key, $array)這是最簡單的選項。 它返回true ,如果數組有給定的密鑰,否則返回false

  2. isset($array[$key])array_key_exists嚴格一點,因為它還要求分配給鍵的值不為null

  3. !empty($array[$key]) (請注意! ),這是最嚴格的選項,因為它要求該值不能為空值(即,不能為nullfalse0'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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM