无法在PHP中正确应用foreach循环

时间:2012-07-05 03:20:34

标签: php joomla

我想在每张幻灯片上留两个帖子。但只获得一张幻灯片。我是编程新手,请帮助我。

$widget_id  = $widget->id.'-'.uniqid();
    $settings   = $widget->settings;
    $navigation = array();
    $captions   = array();

    $i = 0;
?>

<div id="slideshow-<?php echo $widget_id; ?>" class="wk-slideshow wk-slideshow-revista-articles" data-widgetkit="slideshow" data-options='<?php echo json_encode($settings); ?>'>
    <div>
        <ul class="slides">

            <?php foreach ($widget->items as $key => $item) : ?>
            <?php
                $navigation[] = '<li><span></span></li>';
                $captions[]   = '<li>'.(isset($item['caption']) ? $item['caption']:"").'</li>';

                /* Lazy Loading */
                $item["content"] = ($i==$settings['index']) ? $item["content"] : $this['image']->prepareLazyload($item["content"]);
            ?>
            <li>
                <article class="wk-content clearfix"><?php echo $item['content']; ?></article>
            </li>
            <?php $i=$i+1;?>
            <?php endforeach; ?>
        </ul>
        <?php if ($settings['buttons']): ?><div class="next"></div><div class="prev"></div><?php endif; ?>
        <?php echo ($settings['navigation'] && count($navigation)) ? '<ul class="nav">'.implode('', $navigation).'</ul>' : '';?>
        <div class="caption"></div><ul class="captions"><?php echo implode('', $captions);?></ul>
    </div>
</div>

http://i.stack.imgur.com/sy1ih.png

4 个答案:

答案 0 :(得分:1)

您在{之后和循环结束时错过了foreach

答案 1 :(得分:0)

$settings['index']永远不会在循环内发生变化,但$i会发生变化。 更改为:($i<2)

答案 2 :(得分:0)

<?php foreach ($widget->items as $key => $item) { 

            $navigation[] = '<li><span></span></li>';
            $captions[]   = '<li>'.(isset($item['caption']) ? $item['caption']:"").'</li>';

            /* Lazy Loading */
            $item["content"] = ($i==$settings['index']) ? $item["content"] : $this['image']->prepareLazyload($item["content"]);
        ?>
        <li>
            <article class="wk-content clearfix"><?php echo $item['content']; ?></article>
        </li>
        <?php 
         $i=$i+1;
         }
         ?>

答案 3 :(得分:0)

你的foreach语法看起来很好。对于某些人来说,嵌入HTML时比传统的大括号更容易阅读。

我可以问 $ this 变量引用的内容吗?我没有在代码中的任何地方看到这个实例化?它应该是 $ item 吗?