echo php foreach循环结果在3列

时间:2014-09-27 16:19:42

标签: php foreach

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

4 个答案:

答案 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;
?>