我有三个数组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或选中的值,尽管可以全部选中或选中。
我试图在过去的三天里解决这个问题。 我怎么能这样做,请检查并给我一些想法。
提前致谢
答案 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];
}