php数组一次显示两个标题

时间:2012-10-08 15:36:46

标签: php

我有一个包含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 ?>

2 个答案:

答案 0 :(得分:2)

啊,你觉得因为它不能使用foreach循环而感到难过,我想?像这样的时候,好的'for-loop'派上用场,一次增加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:因为你没有提出一个非常具体的问题,我可能完全误解了你的问题。如果这对你的问题没有帮助,试着更准确一点。

答案 1 :(得分: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>