繁体   English   中英

Php Array Count来运行脚本,直到每个回复直到第3个回复都运行脚本,且不超过该数量

[英]Php Array Count to run script run for each reply till 3rd reply and not more than that

我有一个论坛,每次回复后都会显示adscript

<?php if( count( $replies ) <= 3 ){ ?>

---- script ----

<?php } ?>  

之前有一个条款,每个论坛帖子最多可以回复3条-但是现在该条款已更改,甚至有5、7或10条回复

我想修改代码,即使是超过3个回复-脚本也应在每个回复后运行,直到第1个3个回复,而不是从第4个回复开始

我相信数组很可能会用到

<?php
$replyCount = 0;
foreach( $replies as $reply )
{
$replyCount++;
$replyNumber = array(1, 2, 3);

if (in_array($replyCount, $replyNumber)) {
echo "script";
}
?>

但是-以上脚本正在执行的操作是

它在所有回复中显示脚本

每次回复后显示其脚本3次

可以提供一些帮助和建议以进行修改,以便

脚本应在每次回复后运行一次

脚本应运行到第三次答复为止

请帮助和建议

break; echo 'script'

你说:

它在所有回复中显示脚本
每次回复后显示其脚本3次

这是因为您的for循环正在执行3次迭代,因为在第一次迭代中replyCount的值为1,数组中是否为1? 是。 第二次迭代replyCount的值为2等,等等。

编辑:回答您的评论:

<?php 
/* CASE Where number of replies is 3 or less. */
/* Prints "script" 1 extra time than count($replies) */
$counter = 0;
if(count($replies) <= 3) {
    foreach($replies as $reply) {
        if(count($replies) == $counter) {
            break;
        }
        else {
            echo "script";
        }
        $counter++;
    }
}
/* CASE Where number of replies is 4 or more print script 3 times. */
else {
    echo 'script' . '<br />';
    echo 'script' . '<br />';
    echo 'script' . '<br />';
}
?>

请阅读此处发布的当前代码,然后查看案例:

情况1: count($replies) = 0

foreach循环开始
IF第一次发生火灾,什么也没发生

情况2: count($replies) = 1

foreach循环开始
进入else
打印脚本
$counter现在是1
count($replies) == $counter
停止循环
结果是我们打印了1次“脚本”。

情况3: count($replies) = 2

foreach循环开始
进入else
打印脚本
$counter现在是1
进入else
打印脚本
$counter现在是2
count($replies) == $counter
停止循环
结果是我们将“脚本”打印了两次。

情况4: count($replies) = 3

foreach循环开始
进入else
打印脚本
$counter现在是1
进入else
打印脚本
$counter现在是2
进入else
打印脚本
$counter现在是3
count($replies) == $counter
停止循环
结果是我们将“脚本”打印了两次。

情况5: count($replies) > 3

结果是我们打印了3次“脚本”。

如果您遍历此foreach循环的迭代,这些就是结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM