如何在foreach循环中打印前两个数据

时间:2016-03-17 06:48:16

标签: php arrays laravel foreach

我得到了如下所示

Array ( [0] => SB_BL [1] => SB_BXL [2] => SB_GL [3] => SB_GXL )

因为我需要像下面这样的结构

<table>
  <tr><td>SB_BL</td> <td>SB_BXL</td></tr>
  <tr><td>SB_GL</td> <td>SB_GXL</td></tr>
  </table>

        @for($r = 1; $r <=sizeof($x); $r++)
        <td>

        <?php $i=1; ?>
        @foreach($pro_code as $key=>$val)
        @if($i % 2 != 0)
        <input type="text" name="pro_code[]" value="{{ $val }}">
        @else
        <input type="text" name="pro_code[]" value="{{ $val }}">
        @endif
        @endforeach
        <?php $i++;?>
        </td>

        @endfor

for each被置于for循环中,循环已经执行了两次,nw wt可以我做

5 个答案:

答案 0 :(得分:1)

您可以计算循环的迭代次数并按以下方式打印

$i=1;
echo '<table>';
foreach($array as $key=>$val){
    if($i % 2 != 0) {
        echo '<tr><td>'.$val.'</td>';
    } else { 
        echo '<td>'.$val.'</td></tr>';
    }
    $i++;
}
echo '</table>';

您可以在此处查看实时示例http://codepad.org/9xeiXJre

答案 1 :(得分:0)

在循环中递增计数器变量,然后,如果当前项大于2,只需退出循环即可完成。您只有这个例子,因为您没有提供代码。

答案 2 :(得分:0)

array_chunk的PHP函数用于将数组拆分为某些元素的块。您可以拆分2个元素并将其放入foreach循环并打印出值。

原始PHP的示例:

$split_arr=array_chunk($main_array,2); //$main_array=Array ( [0] => SB_BL [1] => SB_BXL [2] => SB_GL [3] => SB_GXL )

echo "<table>"; //table wrapper
foreach($split_arr as $item) {
    echo "<tr><td>$item[0]</td> <td>$item[1]</td></tr>"; //row with 2 items
}

echo "</table>"; //table end

答案 3 :(得分:0)

@Fabio提供的答案对于普通的php是正确的。但由于OP使用Laravel,而Laravel使用Blade模板引擎,因此这里也是Blade语法的表示:

<table> 
  <tr>
  @foreach ($arrOutput as $i => $element)
    @if($i > 0 && $i%2 === 0)
        </tr><tr>
    @endif
    <td>{{$element}}</td>
  @endforeach
  </tr>
</table>

也许对某人有所帮助。

答案 4 :(得分:0)

您可以使用for循环打印此

<?php 
$input =array('SB_BL','SB_BXL','SB_GL','fSB_GXL');
echo '<table>';
for($i= 0; $i < 3; $i++)
{
    $v = $i+1;
    echo '<tr>';
    echo '<td>'.$input[$i].'</td><td>'.$input[$v].'</td>';
    echo '</tr>';
    $i++;
}
echo '</table>'
?>

这将输出

SB_BL   SB_BXL
SB_GL   fSB_GXL