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