检查数组是否有一个或多个空值

13

我有一个数组$var,如果其中一个或多个元素为空(即字符串为“”),我希望返回FALSE。

我认为使用array_filter()是更好的方法,但我不知道如何以这种方式过滤它。

我该怎么做?

5个回答

22

函数 emptyElementExists()

function emptyElementExists($arr) {
  return array_search("", $arr) !== false;
  }

例子:

$var = array( "text1", "", "text3" );
var_dump( emptyElementExists($var) );

输出:

布尔值(true)

参考资料


3
或者使用 in_array("",$ur_array)。 (说明:该代码是一行PHP代码,用于检查数组 $ur_array 中是否存在空字符串元素。) - Serjas

10
if (array_search('', $var)!==false) return FALSE;

1

1

如果你想要一个检查数组中是否有false项的函数,你可以编写自己的函数来实现:

  • 遍历数组
  • 对于每个循环,检查当前项的值是否为""
  • 如果值不是"",则运行下一个循环
  • 如果值是"",则通过返回False来终止循环

array_filter接受一个数组和一个函数,然后遍历数组并将每个项发送到指定的函数中。如果函数返回true,则保留该项在数组中,如果函数返回false,则将该项从数组中取出。

你看到区别了吗?


0

或者,正如@Ancide所建议的那样:

$var = array("lorem", "ipsum", "dolor");
$emptyVar = array("lorem", "", "dolor");

function has_empty($array) {
    foreach ($array as $value) {
        if ($value == "")
            return true;
    }
    return false;
}

echo '$var has ' . (has_empty($var) ? 'empty values' : 'no empty values');
echo '<br>';
echo '$emptyVar has ' . (has_empty($emptyVar) ? 'empty values' : 'no empty values');

编辑:

一开始我不确定array_search()是否会在找到第一个匹配项后停止搜索。在验证了PHP源代码之后,似乎array_search()的方法应该更快(而且更短)。因此,我认为@Wh1T3h4Ck5的版本更可取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接