在3列中返回php foreach循环结果

在3列中返回php foreach循环结果,php,foreach,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或table中以3列的形式显示结果,如下面的示例所示

我有一个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或table中以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

如果您的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;
$title\u array=array\u列($items,'title');
$chunkArr=array\u chunk($title\u array,count($title\u array)/3);
$count=计数(当前($chunkArr));
$table='';
对于($i=0;$i<$count;$i++){
$table.='';
foreach($chunkArr作为$val){
$table.=''.$val[$i].';
}
$table.='';
}
$table.='';
echo$表;

如果您希望在表格中显示结果:

$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>';
$i=0;
回声'
';
foreach($items作为$item){
$i++;
回显“.$item['title']”;
如果($i==3){//一行中有三个项目。编辑此项可获得一行中的更多或更少项目
回声';
$i=0;
}
}
回声'
';

此代码至少应该为您提供一个开始的位置。

您可以使用
数组\u chunk
将您想要的组划分为多个组,然后使用twitter引导将您的项目放入一个div-like中

<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>

$all\u items=数组块($my\u数组,3);
foreach($div\u项目中的所有项目){
foreach($col\u md\u 4\u项目的div\u项目){
回声';
echo$col_md_4_项目;
回声';
}
}

.项目{
浮动:左
}

我不知道该怎么办it@user3246727是的,我刚刚注意到了。而
应该是
,我也fixed@user3246727这怎么能回答你的问题?这不会生成与示例中相同的输出。输出将是一行中的
项目1项目2项目3
。@wumm是的,但在第三项之后,它将转到另一项,这是OP的要求wants@SuperDJ仔细看问题;你看到上面写着第1项第6项第11项了吗?(然而,我做了一个小的编辑,以删除否决票)
<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;
?>