我有一个包含数据的数组,必须将它们放入表中。 数组:
array(
0=>1
1=>Jon
2=>jon@email.com
3=>2
4=>Doe
5=>doe@email.com
6=>3
7=>Foo
8=>foo@email.com)
所以表头是:
<table>
<head>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
</table>
如果我遍历数组:
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
@foreach($array as $data)
<tr>
<td>
{{$data}}
</td>
</tr>
@endforeach
<tbody>
</table>
当前输出:
Id Name Email
1 Jon jon@email.com 2 Doe doe@email.com 3 Foo foo@email.com
但是我想要的输出是:
Id Name Email
1 Jon jon@email.com
2 Doe doe@email.com
3 Foo foo@email.com
我尝试使用array_chunk()将数组分块为数组,但结果相同。
我在laravel上,但是我也可以使用纯PHP。 任何提示都将不胜感激。
答案 0 :(得分:3)
<tbody>
@foreach(array_chunk($array, 3) as $data)
<tr>
<td>
{{ $data[0] }}
</td>
<td>
{{ $data[1] }}
</td>
<td>
{{ $data[2] }}
</td>
</tr>
@endforeach
<tbody>
答案 1 :(得分:2)
希望这会对您有所帮助。
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
@for($i = 0; $i < count($array); $i= $i+3)
<tr>
<td>
{{ $array[$i] }}
</td>
<td>
{{ $array[$i + 1] }}
</td>
<td>
{{ $array[$i + 2] }}
</td>
</tr>
@endforeach
<tbody>
</table>
答案 2 :(得分:0)
首先,您当前的代码不会给您所显示的输出。它应该是垂直的,每个元素在其单独的行中。但是让我们解决问题。
您没有合适的对象要处理,因此这里的条件是经过3次迭代后,将有新数据出现。因此,您可以采用3的mod并使其像这样工作:
@foreach ( $array as $key => $value )
// you have a new dataset
@if ( ($key % 3) == 0 )
<tr>
@endif
<td>{{ $value }}</td>
@if ( ($key % 3) == 0 )
</tr>
@endif
@endforeach
我没有在上面测试此代码,但是它可以工作。尽管我总是喜欢使用User类或其他对象的适当列表。
编辑:我希望@Sand Of Vega回答。更好。
答案 3 :(得分:0)
尝试一下
用以下内容替换您的内容。
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
@foreach($array as $key => $value)
if($key % 3 == 0){
echo "</tr>";
}
echo "<td>".$value."</td>";
@endforeach
<tbody>
</table>
答案 4 :(得分:0)
我对laravel不太熟悉,但我希望以下对您有用。
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
$length = (int) count($array)/3;
@for($i = 0; $i < $length; $i+=3)
<tr>
<td>{{$data[$i]}}</td>
<td>{{$data[$i+1]}}</td>
<td>{{$data[$i+2]}}</td>
</tr>
@endfor
<tbody>
</table>