我如何计算foreach中的数字?

时间:2018-04-05 18:57:26

标签: php

我怎样才能从2开始计算(直到foreach到达循环结束)? 使用的代码:

for($i=0;$i<7;$i++) { //loop 7 times
    $date->add(new DateInterval('P1W')); //add one week

    $formatted_time = strftime("%A, %d. %B %Y, %H:%M", $date->getTimestamp());
    $formatted_time_scnpart = strftime("%H:%M", $date_scn->getTimestamp());

    $evenname  = $event->title;
    $bad_words = array('Example1','Example1','Example2','Example3','Example4','Example5');
    foreach($bad_words as $bad_word){
        if(in_array($eventname, $bad_words)) {
            break;
        } else {
            // This is the modal
            $ray = [2,3,4,5,6,7,8,9,10];
            $cnt = 2;
                echo '<span style="font-weight:400;">'.$cnt++.'. '.'Termin: '.'</span>';
                echo '<span>'.$formatted_time.' - '.$formatted_time_scnpart.'</span><br/>';
                break;
            }
        }
    }

正如您在第一个echo中看到的那样,我已经尝试使用来自this的解决方案,但因为我已经在foreach中,所以这将无法工作并且会破坏其他代码。 (或至少我不知道如何)

2 个答案:

答案 0 :(得分:3)

在循环之前放置$ cnt = 2并在循环中放入$ cnt ++,这样它将从2开始计算循环。

答案 1 :(得分:0)

您需要将$cnt放在foreach

之外 像这样:

$cnt = 2;
foreach($bad_words as $bad_word){
    if(in_array($eventname, $bad_words)) {
        break;
    } else {
        echo '<span style="font-weight:400;">'.$cnt++.'. '.'Termin: '.'</span>';
        echo '<span>'.$formatted_time.' - '.$formatted_time_scnpart.'</span><br/>';
        break;
    }
}