如何检查数组是否有 [0] 索引但没有值


How to check if an array have [0] index but no value?

>我处于一个非常特殊的情况,我有一个索引数组$name_array,它有 0 个索引但没有值,如下所示;

Array
(
    [0] => 
)

我想将此数组视为空数组,我已经在 isset($name_array)!empty($name_array) 中检查了它,但这个数组同时通过了这两个条件。我不知道我应该应用什么条件来检测这个数组是否具有这些值,那么它是空的?

例如;

if(/*some condition*/($name_array)) 
{
    echo 'I am not empty';
}
else
{
    echo 'I am empty';
}
您可以使用

array_filter

if (!array_filter($name_array)) {
    // empty or has "empty" values
}

默认情况下,array_filter过滤掉任何"空"值,如空字符串、nullfalse

!empty足以检查数组的第一个索引是否有效:-

if(!empty($array[0])){
 // $array[0] has value
}

对于您不知道第一个索引键的多维数组,

if(!empty($array[key($array)])){
  echo $array[key($array)];
}

空 - 如果 var 存在且具有非空、非零值,则返回 FALSE。否则返回 TRUE。

以下内容被视为空:

"(空字符串)

0

(0 作为整数)

0.0(0 作为浮点数)

"0"(0 作为字符串)

array() (一个空数组)

$var;(已声明但没有值的变量)

没有内置函数来检查
您可以创建自己的:)这里有一个例子

function is_array_empty($name_array) {
    foreach($name_array as $elm) {
        if(!empty($elm)) return FALSE;
    }
    return TRUE;
}

你只是想检查第一个元素是否为空吗? 如果是这样:

if ( ! current($name_array)) {
    // first element in $name_array is niether false, null, 0 or an empty string
}

如果您需要检查更具体的情况,只需将感叹号更改为您需要检查的任何内容即可。

function is_array_empty($name_array) {
    $arrSize=sizeof($name_array);
    $emptElements=0;
    foreach($name_array as $elm) {
        if(empty($elm)){
           $emptElements++;
        }
    }
    if($emptElements==$arrSize){
        return TRUE;
    }else{
        return FALSE;
    }
}