PHP循环的foreach确定第二次和第三次迭代
问题描述:
这里我怎么可以检测第二次和第三次迭代就是我所做的,但它没有得到正确的答案
$sample_array = array('boom 1','boom 2','boom 3','boom 4','boom 5','boom 6','boom 7');
$separator2 = 0;
$separator3 = 0;
foreach($sample_array as $sample_array_value){
if(++$separator3 % 3 == 0)
{
echo $sample_array_value."<br /><br /> Separator 3 <br /><br />";
}
else if(++$separator2 % 2 == 0)
{
echo $sample_array_value."<br /><br /> Separator 2 <br /><br />";
}
else
{
echo $sample_array_value."<br />";
}
}
代码的输出:
boom 1
boom 2
Separator 2
boom 3
Separator 3
boom 4
boom 5
Separator 2
boom 6
Separator 3
boom 7
哪项是错误的,我需要的输出是:
boom 1
boom 2
Separator 2
boom 3
Separator 3
boom 4
Separator 2
boom 5
boom 6
Separator 2
Separator 3
boom 7
答
你不需要额外的变量,因为你的数组是基于0的索引,所以你可以直接使用这个键。此外,您必须稍微改变一下逻辑,以便获得预期的输出,例如
foreach($sample_array as $key => $sample_array_value){
echo $sample_array_value . "<br />";
if(($key + 1) % 2 == 0 && ($key + 1) % 3 == 0)
echo "<br>Separator 2 <br />Separator 3<br /><br />";
elseif(($key + 1) % 2 == 0)
echo "<br>Separator 2 <br /><br />";
elseif(($key + 1) % 3 == 0)
echo "<br>Separator 3 <br /><br />";
}
输出:
boom 1
boom 2
Separator 2
boom 3
Separator 3
boom 4
Separator 2
boom 5
boom 6
Separator 2
Separator 3
boom 7
答
你想检查第2和第3外,如果实现了繁荣。因为你也希望分离器在繁荣后完成,然后把它放下。
$ sample_array = array('boom 1','boom 2','boom 3','boom 4','boom 5','boom 6','boom 7');
$separator2 = 0;
$separator3 = 0;
$count = 1;
foreach($sample_array as $sample_array_value){
echo $sample_array_value."<br />";
if($count % 3 == 0)
{
echo "Separator 3 <br />";
}
if($count % 2 == 0)
{
echo "Separator 2 <br /><br />";
}
$count++;
}
我该如何使用,在使用MySQL的只是这样的foreach(mysql_fetch_array($查询)为$获得){} $无钥匙?原因 –
@JoelEnanodJr然后初始化变量foreach循环之前,例如'$ count = 0;'并在foreach循环结尾增加它,例如'$ count ++;' – Rizier123
谢谢sir @ Rizier123,即使我不理解你的代码它解决了我的问题..我在no循环中hello多谢了......顺便说一下,例如什么意思? –