我试图在每第三个元素之后放置一些AD,但它仍然不能像我想要的那样工作。这就是为什么我创建了一个小代码剪切,用一个简单的php数组来反映我的情况。
<?php
$arr = [1,2,3,4,5,6,7,8,9];
$counter = 1;
foreach($arr as $a){
echo "$a \n";
if( $counter%3==0){
echo "something awesome\n";
}
$counter++;
}
这会返回:
1
2
3
something awesome
4
5
6
something awesome
7
8
9
something awesome
But I only want it 2x - like:
1
2
3
something awesome
4
5
6
something awesome
7
8
9
2x“令人敬畏的东西”会比3倍好,但我根本不能做到。
感谢您的帮助!
答案 0 :(得分:1)
由于每个人都渴望表明他们可以数数,所以这是我的尝试:
$arr = [1,2,3,4,5,6,7,8,9];
foreach ($arr as $k => $a){
if ($k && $k % 3 == 0) {
echo "something awesome\n";
}
echo "$a \n";
}
很抱歉删除$counter
变量。这没用。
答案 1 :(得分:1)
使用foreach()
时,您可以使用数组的$key
和$value
。
<?php
$arr = [1,2,3,4,5,6,7,8,9];
$counter = count($arr);
foreach($arr as $key => $value){
echo $value . '<br>';
if($key % 3 == 2 && $key+1 < $counter ){
echo "something awesome<br>";
}
}
答案 2 :(得分:0)
您需要做的是使用模数%运算符,请参阅下面的注释。
<?php
$arr = [1,2,3,4,5,6,7,8,9];
foreach($arr as $a)
{
echo "$a\n";
if($a % 3 == 0) // If $a divided by 3 leaves no remainder
{
echo "something awesome\n";
}
}
?>
答案 3 :(得分:-1)
这应该这样做。可能不是最优雅的方式但它有效:
$arr = [1,2,3,4,5,6,7,8,9];
$counter = 1;
$overallCount = 1;
foreach($arr as $a){
echo "$a \n";
if( $counter == 3 && $overallCount < count($arr)){
echo "something awesome\n";
$counter = 0;
}
$counter++;
$overallCount++;
}