foreach循环中的计数器不起作用

时间:2013-01-14 20:17:04

标签: foreach counter opencart

我有一个foreach循环,我需要编号类,所以我设置了一个计数器:

 <?php
 $counter = 0;
  ?>
  <?php
$html = '';
foreach ($json['feed']['entries'] as $entries){ 
$counter++;
$html .= '<a href="' .$entries['link']. '"><span class="feeddisplay_title">'.$entries['title']. ' </span></a>';
    if($entries['publishedDate'] != '') {
        $html .='<span class="feeddisplay_date">' .$entries['publishedDate'].    '</span>';
    }
    $html .= '<p>' .$entries['contentSnippet']. '</p>';
}
?>
<div class="box feed-<?php echo $counter; ?>">
 <div class="box-heading"><?php echo $heading_title; ?>:</div>
 <div class="box-content">
<div class="feeddisplay"><?php echo $html ?></div>
 </div>
 </div>

我的输出类一遍又一遍地是“feed-1”。它没有上升。我尝试了一些变化而且卡住了。

3 个答案:

答案 0 :(得分:0)

这是因为你在foreach循环之外回显了计数器变量。

当$ counter被调用时,计数器的值已经通过foreach循环加起来,所以你只是显示最终计数。

答案 1 :(得分:0)

您确定不希望输出为:

<?php
$counter = 0;

$html = '';
foreach ($json['feed']['entries'] as $entries){
    $counter++;
    $html = '<div class="box feed-'.$counter.'">
    <div class="box-heading">'.$heading_title.':</div>
    <div class="box-content">
        <div class="feeddisplay">
            <a href="' .$entries['link']. '">
                <span class="feeddisplay_title">'.$entries['title']. ' </span>
            </a>';
    if($entries['publishedDate'] != '') {
        $html .='<span class="feeddisplay_date">'.$entries['publishedDate'].'</span>';
    }
    $html .= '<p>'.$entries['contentSnippet'].'</p>';
    $html .= '        </div>
    </div>
</div>';
}
?>
<?php echo $html; ?>

答案 2 :(得分:0)

找到解决方案:

由于这是opencart,这是.tpl文件,并且计数器不工作的原因是因为有另一个变量试图在.php控制器文件上执行相同的功能。我只是回应了#34;模块&#34;而不是&#34; counter&#34;它起作用了。

   <div class="box feed-<?php echo $module; ?>">