将数组打印到表格

时间:2018-09-14 05:17:07

标签: php laravel

我有一个包含数据的数组,必须将它们放入表中。 数组:

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。 任何提示都将不胜感激。

5 个答案:

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