[英]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.