我在这里有一点脑屁......哈哈
我最初为此使用了一个forloop()但是后来条件在我需要检查的事情上得到了更多进展,以及基于找到/未找到的输出..
我的问题是确保在连续的循环中......(无访问)药水上的'else'只会回显一次......但是当然在每个'循环'它将从顶部检查,如果不是匹配输出'no-access'文本..(在每次迭代时)..它应该只输出一次。
最初在foreach()循环中只有几个if()语句/检查..其中一个简单的中断;照顾好事......
但是这些if()变成了if / else ..这意味着else会在下一个'循环'上被'触发'..如何防止这种情况?
$arrwebinars = ("Name1", "Name3");
foreach($arrwebinars as $webinar) {
/* Webinar 1 */
if($webinar == 'Name1') {
if($web01_title != '') {
echo "available";
} else {
echo "not available";
}
} else {
echo "no access";
}
/* Webinar 2 */
if ($webinar == 'Name2') {
if ($web02_title != '') {
echo "available";
} else {
echo "not available";
}
} else {
echo "no access";
}
/* Webinar 3 */
if ($webinar == 'Name3') {
if($web03_title != '') {
echo "available";
} else {
echo "not available";
}
} else {
echo "no access";
}
}
还有其他一些'控制'我可以用来确保主if / else只执行一次吗?
抱歉,我很难描述这个,希望代码解释一切(和问题)
感谢。
更新: 当前状态:恢复为foreach()循环。
用户仅获得2个vids的授权(#5&#6我们会说......实际上可以是6个中的任何一个)
在第一次循环/迭代时...视频1-4输出(无法访问你!)(因为它们不是,只有#5&#6如上所述)
没有。 5输出嵌入代码精细(访问)
没有。 6说'无法访问你'..(即使他们确实/应该有权访问)
在第二次迭代时..复制1-4重复,并再次说“无法访问你”(在它之外是重复......这是正确的)..但是,视频#5现在说“无法访问”为你“(首先循环它输出正常,第二循环它正在寻找一个新的'匹配',而不是我想要的...理论上这是正确的..但应该有一个重复的)
Vid#6现在正在输出嵌入代码(在第一个循环中没有输出)..
用户只购买了2个视频的访问权限..所以循环只发生两次。
但我得到'12'回声
无论我应该只获得6个回声,每个视频输出1个(可用/不可用 - 或 - 无访问权限)
我今天似乎无法绕过这个...... :(
目标我想实现:
6输出TOTAL
每个输出(回声)应该只有: 可用或不可用打印(这是空白标题的嵌套条件检查) -要么- 无法访问
有6个视频要检查。 用户可以购买1个或最多6个视频的访问权限
首先检查:是他们购买的阵列中的网络研讨会名称是在可用的总共6个视频中找到的
第二层条件检查: 如果是(匹配发现==访问)...然后检查标题是否丢失(如果有输出访问[视频嵌入代码] ...如果没有输出文本'尚不可用')
(回到第一次条件检查)如果没有访问(未找到匹配)..输出'无访问'文本。
如果我想在舞台/页面上重复,这是有效的..(但我不会!)大声笑..
我需要限制为仅6个输出,因为总共只有6个视频可用。
我不想要:
在循环1上输出vid#1的访问权限,#2-#6不能访问.. 在循环2上,它重新声明了所有这些输出,现在vid#1无法访问,vid#2有访问权限,vid#3-#6无法访问...
等等。循环继续。我迷失在这一个!...
谢谢!
答案 0 :(得分:0)
不确定您要实现的目标,但您的代码可能会大大缩短。
$webinars = array('one', 'two', 'Name3');
$web0_title = 'not empty'; // Just a demo
for ( $i = 0; $i < count($webinars); $i++ )
{
$access = FALSE;
$available = FALSE;
$name = 'Name' . $i;
$title = 'web' . $i . '_title';
if ( $webinars[$i] == $name ) {
if ( ! empty( $$title ) ) {
$available = TRUE;
}
$access = TRUE;
}
// Simple debug, not sure what you want to accomplish
echo 'Webinar: ' . $webinars[$i] . ' <br />';
echo 'Availability: ' . ( $available ? 'Available' : 'Not Available' ) . '<br />';
echo 'Access: ' . ( $access ? 'Access' : 'No Access' ) . '<br /><br />';
}
编辑:请阅读您的评论,以便我对其进行更新。
答案 1 :(得分:0)
如果您希望在遇到“无法访问”时停止考虑“行”,那么在每次无法访问后您只需continue;
。或者你是否希望检查其他人,即使你在第一次遇到“无法访问”,只是在这种情况下无声地失败?