我有一个工作日的PHP数组,通过表单提交我得到了额外的数据,但我想验证这个数组,所以如果数组是空的想要显示一条消息,我的问题总是有一个子数组调用“游戏”等主阵列永远不会空洞。我怎么能忽略它们呢?
“空”数组结构如下:
“monday' = ['games' = [1, 2, 3, 'game_off']],
答案 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
}