如何检查嵌套数组中的键中是否存在值?

时间:2012-11-14 03:45:24

标签: php multidimensional-array foreach boolean

如何编写要检查的函数 - 只要嵌套数组中的键中存在值存在,然后返回true

例如,

$input = array(
    "path" => null,
    "type" => array (
            "post" => null,
            "page" => null
        ),
    "title" => null, 
    "category" => array(
            "image" => "on"
     )
);

function validate_array($input = array())
{

    # Loop the array.
    foreach($input as $key => $value)
    {
        if($value && !is_array($value)) return true;

        elseif(is_array($value))
        {
            validate_array($value);
        }
        elseif($value)
        {
            return true;
        }
    }

    # Return the result.
    return false;
}

var_dump(validate_array($input)); // return bool(false)

它应该返回true,因为其中一个嵌套数组 - 类别 - 的值

2 个答案:

答案 0 :(得分:2)

# Loop the array.
foreach($input as $key => $value)
{
    if($value && !is_array($value)) return true;

    elseif(is_array($value))
    {
        //--->change this line to this<----
        if validate_array($value) return true;
    }
    elseif($value)
    {
        return true;
    }
}

另外,我认为你不需要那个最后的地方

答案 1 :(得分:1)

经过测试,应该可行。当找到值时返回true,否则返回false。

function validate_array($input = array())
{
    # Loop the array.
    foreach($input as $key => $value) { 
        if (isset($value)) {
            if (is_array($value)) {
                if (validate_array($value)) {
                    return true;
                }
            } else {
                return true;
            }
        }
    }
    # Return the result.
    return false;
}