我有一个foreach循环,我的代码看起来是:
foreach($items as $item){
echo $item['title'];
}
例如我的循环中有15个项目。我的循环将输出如下内容:
item 1
item 2
item 3
item 4
item 5
item 6
item 7
item 8
item 9
item 10
item 11
item 12
item 13
item 14
item 15
如何在div或表中显示3列中的结果,如下例所示?
item 1 item 6 item 11
item 2 item 7 item 12
item 3 item 8 item 13
item 4 item 9 item 14
item 5 item 10 item 15
答案 0 :(得分:4)
如果您希望将结果放在表格中:
$i = 0;
echo ' <table>
<tr>';
foreach($items as $item){
$i++;
echo '<td>'.$item['title'].'</td>';
if($i == 3) { // three items in a row. Edit this to get more or less items on a row
echo '</tr><tr>';
$i = 0;
}
}
echo ' </tr>
</table>';
此代码至少应该为您提供一个起点。
答案 1 :(得分:3)
如果您的PHP版本为5.5 +
,请尝试此操作$title_array = array_column($items, 'title');
$chunkArr = array_chunk($title_array, count($title_array) / 3);
$count = count(current($chunkArr));
$table = '<table border="1">';
for($i = 0; $i < $count; $i++){
$table .= '<tr>';
foreach($chunkArr as $val){
$table .= '<td>'.$val[$i].'</td>';
}
$table .= '</tr>';
}
$table .= '</table>';
echo $table;
答案 2 :(得分:2)
您可以使用array_chunk
分割成您想要的群组数量,然后使用Twitter bootstrap将您的项目放入div中
<div class="row">
$all_items = array_chunk($my_array,3);
foreach($all_items as $div_item){
foreach ($div_item as $col_md_4_item){
echo '<div class="col-md-4">';
echo $col_md_4_item;
echo '</div>';
}
}
</div>
答案 3 :(得分:2)
<style type="text/css">
.item {
float:left
}
</style>
<?php
$data = array('item 1','item 2','item 3','item 4','item 5','item 6','item 7','item 8','item 9','item 10','item 11','item 12','item 13','item 14 ','item 15',);
$num_item = 5; //we set number of item in each col
$current_col = 0;
$v = '';
foreach ($data as $item) {
if ($current_col == 0) {
$v .= '<div class="item">
<ul>';
}
//$image = preg_replace('/images/','_thumbs/Images',$p->image);
$v .= ' <li>'.$item.'</li>';
if ($current_col == $num_item - 1) { // Close the row if $current_col equals to 2 in the example ($num_cols -1)
$current_col = 0;
$v .= '</ul></div>';
} else {
$current_col++;
}
}
$v .= '</div>';
echo $v;
?>