簡體   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