PHP使用子数组验证数组?

时间:2017-06-01 20:10:40

标签: php arrays

我有一个工作日的PHP数组,通过表单提交我得到了额外的数据,但我想验证这个数组,所以如果数组是空的想要显示一条消息,我的问题总是有一个子数组调用“游戏”等主阵列永远不会空洞。我怎么能忽略它们呢?

“空”数组结构如下:

monday' = ['games' = [1, 2, 3, 'game_off']],

array dump

2 个答案:

答案 0 :(得分:2)

迭代数组并计算每天的值。因为“游戏”总会有一个值,所以寻找计数< 2.如果找到任何内容,则该项目仅包含“游戏”,并且您的数组无效。

$valid = true;
foreach ($array as $day => $values) {
    if (count($values) < 2) {
        $valid = false;
        break;
    }
}

这将验证每天除了“游戏”之外还有其他内容。如果您需要验证任何一天除了'游戏'之外还有什么东西,那么逻辑就相反了。

$valid = false;
foreach ($array as $day => $values) {
    if (count($values) > 1) {
        $valid = true;
        break;
    }
}

答案 1 :(得分:0)

你可以走进阵列并计算它们:

$count = 0;
foreach ($array as $item) {
    if (is_array($item) && count(item) > 0){
        foreach ($item as $key => $subitem) {
            if ($key != 'games'){
               $count++;
            }
        }
    }
}

if ($count > 0){
  //your array is valid
}