检查循环中多个数组的值

时间:2014-12-24 12:59:11

标签: php mysql arrays

我有三个数组sure[]maybe[]notify[],它们显示在这样的循环中:

sure[0]     maybe[0]     notify[0]
sure[1]     maybe[1]     notify[1]
sure[2]     maybe[2]     notify[2]
sure[3]     maybe[3]     notify[3]

等等......

现在我想要的是在形式上我得到所有数组,并且应该至少有一个值为sure[0]maybe[0]notify[0]为真或检查意味着水平`。

在此过程中,对于所有下一行都是相同的,并且每行必须包含至少一个true或选中的值,尽管可以全部选中或选中。

我试图在过去的三天里解决这个问题。 我怎么能这样做,请检查并给我一些想法。

提前致谢

3 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来检查三者中的至少一个是否设置:

$oneSet = $sure[0] || $maybe[0] || $notify[0];

如果你想在一个循环中这样做,你可以这样做(假设每个列表同样长)

$oneSetInEach = true;
for( $i = 0 ; $i < count($sure) ; $i++ ) {
  $thisSet = $sure[$i] || $maybe[$i] || $notify[$i]; // check if one is set here
  $oneSetInEach = $oneSetInEach && $thisSet; // if all the previous ones are ok, and this is ok, we are still ok
}

// $oneSetInEach will now be true or false depending on whether each row has at least 1 element set.

答案 1 :(得分:0)

如果所有数组count()都相同

       <?php

$i = 0;
while ($i < count($sure)) {
    if ((isset($sure[$i]) AND $sure[$i] == true) OR ( isset($maybe[$i]) AND $maybe[$i] == true) OR ( isset($notify[$i]) AND $notify[$i] == true)) {
        // your code  
    }

    $i++;
}
?>

答案 2 :(得分:0)

也许:

$res = true;
for( $i=0 ; $i<count($sure) ; $i++ ) {
  $res &= $sure[$i]  || $maybe[$i] || $notify[$i];
}