如何在PHP中检查多维数组是否至少有1个等于(bool)true的值

时间:2009-07-02 03:03:40

标签: php arrays

我有一个多维数组。其中唯一的实际值(除了其他数组)是数字。默认情况下,它们都是0。

我想知道是否有一种简单的方法可以确定数组中是否包含0以外的值。

我知道我可以构建一些递归的东西,但我想知道我是否可以利用array_map()或类似的东西。我无法让array_count_values()使用关联数组。

如果那不可能,我将如何设计递归函数?

以下是一些测试用例

$array = array(
'test' => array(0, 0, 0, array(0, 0, 0))
)

应该返回false。

$array = array(
'test' => array(0, 0, 0, array(6, 0, 0)) // notice the 6
)

应该返回true。

谢谢!

1 个答案:

答案 0 :(得分:3)

嗯,我想不出一种方法来使用PHP的内置函数来完成这项工作。所以这是一个快速的递归解决方案:

function hasnonzero($array)
{
    foreach ($array as $value)
    {
        if (is_array($value))
        {
            if (hasnonzero($value))
                return true;
        }
        else if ($value != 0)
            return true;
    }

    return false;
}