我意识到这非常简单,但我觉得我看起来过分了。 我要屏幕显示的是
RED This is 0.
或
GREEN This is 1.
并使其在显示的文本之间来回切换。我的逻辑如果在红色和绿色之间交替正常,但“这是0 ”和“这是1 ”文本没有显示。
到目前为止,这是我的代码:
<?php
$array = array(0=>"RED",1=>"GREEN");
$a_count = 0;
$count = 0;
while($count<10)
// DO 9 TIMES
{
echo $array[$a_count] . ' ';
//SUDO FOR IMAGE BEING DISPLAYED
while($array[$a_count] == 0)
{
echo "This is 0.<br>";
}
while($array[$a_count] == 1)
{
echo "This is 1<br>";
}
//<----SWITCH BACK AND FORTH---->
if($a_count == 1)
{
$a_count = 0;
}
else
{
$a_count++;
}
//<----------------------------->
$count++;
}
?>
我意识到获得我想要的最简单的方法是:
<?php
$array = array(0=>"RED",1=>"GREEN");
$a_count = 0;
$count = 0;
while($count<10)
// DO 9 TIMES
{
echo $array[$a_count] . ' ';
//SUDO FOR IMAGE BEING DISPLAYED
//<----SWITCH BACK AND FORTH---->
if($a_count == 1)
{
echo "This is 1<br>";
$a_count = 0;
}
else
{
echo "This is 0.<br>";
$a_count++;
}
//<----------------------------->
$count++;
}
?>
但是这段代码不包含我继续这个项目所需的逻辑。 我非常感谢为什么我的第一个代码不打印“这是0”。
谢谢!
答案 0 :(得分:3)
你要找的是一个mod计数。
更改你的循环:
for($i=0;$i<10;$i++){
echo $array[$i%2].' This is '.($i%2);
}
模运算符返回除法的余数。 请参阅:What are the practical uses of modulus (%) in programming?
答案 1 :(得分:1)
为什么不这样:
$colors = array(0 => 'Red', 1 => 'Green');
$idx = 0;
$count = 0;
while($count < 10) {
echo "The color is {$colors['$idx']}<br />";
$count = 1 - $count; // if $count is 1, it becomes 0. if it's 0, it becomes 1
}
你的while()循环基本上完全没用。你试图再次比较RED和GREEN字符串0.如果任何一个评估都是真的,你最终会得到一个无限循环。
答案 2 :(得分:0)
您没有更改while循环中$a_count
的值,因此无法结束。
问题在于:
while($array[$a_count] == 0)
{
echo "This is 0.<br>";
}
while($array[$a_count] == 1)
{
echo "This is 1<br>";
}
一旦进入第一个循环,它就会保持回显"This is 0.<br>"
,因为$a_count
不变。
您似乎可以将这些while
更改为if
,以使您的代码按您希望的方式运行。您可能还想检查$a_count
是0还是1,而不是$array[$a_count]
答案 3 :(得分:0)
忽略此脚本的低效率,您的while循环正在与数组的值进行比较,而不是其键。但修复这个问题实际上会暴露另一个问题 - 一个无限循环。
答案 4 :(得分:0)
那么,在你之前的第一个例子中($ count&lt; 10),你有没有启动你的价值观? 如果你这样做,你必须有这样的显示:
RED This is 0.0
This is 0.0
This is 0.0
This is 0.0
This is 0.0
...
&#34;这是0.0&#34;以无限循环显示。
while($array[$a_count] == 0)
{
echo "This is 0.$count<br>";
}
while($array[$a_count] == 1)
{
echo "This is 1<br>";
}
您必须在while循环中更改值。
其他提示,我认为你可以看看&#34; foreach&#34; php循环。对你想做的事情有用。模数也可以帮助你。
答案 5 :(得分:0)
我认为最简单的方法是使用switch语句。我以前没有想到它,我觉得很傻。
while($count<10)
{
echo $array[$a_count] . ' ';
//PSUEDO FOR IMAGE BEING DISPLAYED
switch($a_count):
{
case 1:
echo "This is RED.<br>";
$a_count = 0;
break;
case 0:
echo "This is GREEN.<br>";
$a_count++;
break;
}
$count++;
}