PHP函数确定数组中的所有元素是否为空

PHP函数确定数组中的所有元素是否为空,php,arrays,isnull,Php,Arrays,Isnull,我想知道是否有内置的或更好的方法来测试数组的所有元素是否为null 以下是我的(工作)解决方案: <?php function cr_isnull($data_array){ foreach($data_array as $value){ if(!is_null($value)){return false;} } return true; } ?> 说明: 如果函数在数组中找到任何不为n

我想知道是否有内置的或更好的方法来测试数组的所有元素是否为null

以下是我的(工作)解决方案:

<?php
    function cr_isnull($data_array){    
        foreach($data_array as $value){ 
            if(!is_null($value)){return false;}
        }
    return true;
    }
?>

说明:

  • 如果函数在数组中找到任何不为null的值,则将其删除 返回false,否则在通过所有数组“循环”后返回false 元素返回true
我不能使用empty(),因为我对empty的定义不符合PHP的定义

有什么想法吗,或者我能接受我的想法吗

count(array_filter($myarray,'is_null')) == count($myarray);


可能不需要第二个
count()
,OP只是想看看所有值是否都
null
。@nickb-那么如何测试过滤器是否返回了所有原始值而没有计数?使用array_reduce()可以消除count()的需要,但如果它是一个包含所有空值的数组,
array_filter()
将返回一个包含零元素的数组。将其与
0
进行比较,如果为真,则原始数组具有所有空值,如果不是,则原始数组没有。@nickb-如果回调函数返回真值(如果值为空,则为空将返回真值),则输入的当前值将返回到结果数组中。。。。这意味着,如果返回的数组的所有原始元素都是空值,那么它们将具有所有原始元素。或者,您可以创建一个回调,该回调将使用!如果所有数组项都为空值,则返回一个空数组。这一点稍有变化对我的应用程序非常有用。谢谢。可能不需要第二个
count()
,OP只是想看看所有值是否都是
null
。@nickb-那么如何测试过滤器是否返回了所有原始值而没有计数?使用array_reduce()可以消除count()的需要,但如果它是一个包含所有空值的数组,
array_filter()
将返回一个包含零元素的数组。将其与
0
进行比较,如果为真,则原始数组具有所有空值,如果不是,则原始数组没有。@nickb-如果回调函数返回真值(如果值为空,则为空将返回真值),则输入的当前值将返回到结果数组中。。。。这意味着,如果返回的数组的所有原始元素都是空值,那么它们将具有所有原始元素。或者,您可以创建一个回调,该回调将使用!如果所有数组项都为空值,则返回一个空数组。这一点稍有变化对我的应用程序非常有用。谢谢
array_reduce($myarray,
             function($result,$value) {
                 return $result && is_null($value);
             },
             TRUE
);