0

我有一个包含 28 个标题的数组,我需要遍历数组并一次将 2 个项目(标题)显示到以下 html 中:

<ul>
    //start loop here for all items in array
    <li>
        //display two titles in seperate divs
        <div class="item1">
            <h1>title[x]</h1>
        </div>
        <div class="item2">
            <h1>title[x]</h1>
        </div>
    </li>
    //repeat...
</ul>

所以基本上它输出如下:

<ul>
    <li>
        <div>
            <h1>Title 1</h1>
        </div>
        <div>
            <h1>Title 2</h1>
        </div>
    </li>
    <li>
        <div>
            <h1>Title 3</h1>
        </div>
        <div>
            <h1>Title 4</h1>
        </div>
    </li>
    <li>
        <div>
            <h1>Title 5</h1>
        </div>
        <div>
            <h1>Title 6</h1>
        </div>
    </li>
    //etc..
</ul>

这是我迄今为止尝试过的,显然它只是重复了两个标题。

<div id="work-list">

    <ul class="work-list-cat group">

    <?php if (!empty($this->intro_items)) { 

    foreach($this->intro_items as $id => $item) {
        $itemarray[] = $item;
    }

    $count = count($itemarray);

    $item = 1;

    for($y = 0; $y < $count; $y++) {
    ?>

    <li style="width:33.333333333333333333333333333333%; height:100%; float:left;">

        <?php 
                for($x=0; $x<$item; $x++){ ?>
                <div style="width:100%; height:50%; float:left; background-color:#333;">
                <?php echo $itemarray[$y]->title; ?>
                </div>
                <div style="width:100%; height:50%; float:left; background-color:#444;">
                <?php echo $itemarray[$y]->title; ?>
                </div>
            <?php   } ?>
    </li>

    <?php } ?>

    <?php } ?>

    </ul>

</div>  <?php //End of #work-list ?>
4

2 回答 2

2

啊,我想你被难住了,因为它不能使用foreach循环?像这样的时候,好的 ol' for 循环会派上用场,一次将索引增加 2。像这样的东西可能是您正在寻找的东西:

<ul>
    <?php for ($i = 0; $i < count($array); $i += 2) { ?>
    <li>
        //display two titles in seperate divs
        <div class="item1">
            <h1><? echo $array[$i]; ?></h1>
        </div>
        <div class="item2">
            <h1><? if ($i + 1 < count($array)) echo $array[$i + 1]; ?></h1>
        </div>
    </li>
    <? } ?>
</ul>

注意:它不适用于具有奇数个元素的数组,但看到你有 28 个,这应该不是问题。编辑:当元素数量为奇数时,它只会在最后打印一个空的 div 和 h1-tag。

PS:由于您没有提出真正具体的问题,因此我可能完全误解了您的问题。如果这对您没有帮助,请尝试更准确地提出问题。

于 2012-10-08T15:41:01.983 回答
1

我通常不会给出这样的代码,但我们开始吧:

<ul>
<?php for($i=0;$i<28;$i+=2){
    echo '
    <li>
        <div class="item1">
            <h1>'.$title[$i].'</h1>
        </div>
        <div class="item2">
            <h1>'.$title[$i+1].'</h1>
        </div>
    </li>';
  } ?>
</ul>
于 2012-10-08T15:42:57.633 回答