【问题标题】:How to print first two data in foreach loop如何在foreach循环中打印前两个数据
【发布时间】:2023-04-10 09:17:01
【问题描述】:

我得到了如下所示的 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 arrays laravel foreach


【解决方案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 循环中
          猜你喜欢
          • 2017-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-11
          • 1970-01-01
          • 2021-11-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多