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


How to print first two data in foreach loop

我得到了如下所示的o''p

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

在那我需要像下面的结构一样的 o''p

<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 循环中,循环已经执行了两次,nw wt 我可以 doo

您可以计算循环的迭代次数并打印

如下
$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

循环中增加计数器变量,然后,如果当前项大于 2,只需退出循环即可完成。您只有此示例,因为您没有提供任何代码。

有一个

PHP函数用于array_chunk 将数组拆分为某些元素的块。您可以拆分为 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

您可以使用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

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

也许它可以帮助某人。