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

Posted

技术标签:

【中文标题】如何在foreach循环中打印前两个数据【英文标题】:How to print first two data in foreach loop 【发布时间】:2016-07-03 09:05:58 【问题描述】:

我得到了如下所示的 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 each 被放置在一个 for 循环中,循环已经执行了两次,nw wt i can i doo

【问题讨论】:

你有什么尝试!获取代码 阅读php.net/manual/en/control-structures.foreach.php 你的模板使用 Blade 吗(因为问题有 laravel 标签)? 我在 laravel 中使用这个 【参考方案1】:

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

也许它对某人有帮助。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

$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

【讨论】:

bt foreach 放在 for 循环中

以上是关于如何在foreach循环中打印前两个数据的主要内容,如果未能解决你的问题,请参考以下文章

php中foreach循环遍历二维数组

Pig Latin(在 foreach 循环中过滤第二个数据源)

foreach循环的跳出

foreach使用方法

详细讲解foreach循环的用法

php foreach循环中的变量