Php 具有各自标题的自定义foreach

Php 具有各自标题的自定义foreach,php,for-loop,foreach,Php,For Loop,Foreach,我这里有一个循环,请参阅图片 我有一个名为“供应商名称”的栏目 例如,同一供应商名称有两行 所以我需要一个标题 我的预期目标是 ABS机构 供应商名称-此处应为标题 ABS机构-标题 ABS机构 ABS机构 此处为mycode @foreach($prsdkgrids as $prsdkgrid) <?php if($prsdkgrid->SupplierName == $prsdkgrid->SupplierName){ $Sup

我这里有一个循环,请参阅图片

我有一个名为“供应商名称”的栏目

例如,同一供应商名称有两行

所以我需要一个标题

我的预期目标是

ABS机构

供应商名称-此处应为标题

  • ABS机构-标题
  • ABS机构
  • ABS机构
此处为mycode

   @foreach($prsdkgrids as $prsdkgrid)
                 <?php if($prsdkgrid->SupplierName == $prsdkgrid->SupplierName){ $SupplierName[] = $prsdkgrid->SupplierName; } ?>
                 @endforeach    

@foreach($prsdkgrids as $prsdkgrid)
                 <?php  if(count($SupplierName) == $SupplierName[$f]) { }else{  echo $f."<tr><td><h3 style='font-size: 15px;'>$prsdkgrid->SupplierName</h3></td></tr>"; } ?>
                 <tr class="psr_table1_tr" id="PSupdetID<?php echo $prsdkgrid->PSupdetID; ?>" <?php if($prsdkgrid->ApprovalStatus == 1){ echo 'style="background: #d9edf7;"';} ?>  >
                 <td> {{ Form::label('', $prsdkgrid->ArticleNo) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->Size) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->SpecialDesc) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->QtyExp) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->Coloring) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->Packaging) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->Packing) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->TargetPrice) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->SupPrice) }} </td>
                 <td> {{ Form::label('', $prsdkgrid->SupplierName) }}</td>
                 <td> {{ Form::label('', $prsdkgrid->SupComments) }} </td>
                 <td> <?php if($prsdkgrid->ApprovalStatus == 0){  ?><div align="center" class="floatleft approvedk" id="ApprvedbyResp<?php echo $prsdkgrid->PSupdetID; ?>">  
                 <li><a class="prs_add_link" href="#"><input class="save_btn Approve"  type="button" onclick="ApprvedbyResp(<?php echo $prsdkgrid->PSupdetID; ?>)" value="Approve"></a></li></div><?php } ?> </td>
                 </tr> <?php $f++; ?>
                 @endforeach    
@foreach($prsdkgrids作为$prsdkgrid)
@endforeach
@foreach($prsdkgrids作为$prsdkgrid)
>
{{Form::label(''.$prsdkgrid->ArticleNo)}
{{Form::label(''.$prsdkgrid->Size)}
{{Form::label(''.$prsdkgrid->SpecialDesc)}
{{Form::label(''.$prsdkgrid->QtyExp)}
{{Form::label(''.$prsdkgrid->Coloring)}
{{Form::label(''.$prsdkgrid->Packaging)}
{{Form::label(''.$prsdkgrid->Packing)}
{{Form::label(''.$prsdkgrid->TargetPrice)}
{{Form::label(''.$prsdkgrid->SupPrice)}
{{Form::label(''.$prsdkgrid->SupplierName)}
{{Form::label(''.$prsdkgrid->SupComments)}

您可以将供应商名称存储在变量中,在循环中您只需比较变量和供应商名称。一个简单的方法是这样的,因为您使用的是
foreach()

重新创建阵列示例:

    $new_array = [];
    $tmp_supplier_name = '';

foreach($prsdkgrids as $prsdkgrid){

    if($tmp_supplier_name  != $prsdkgrid->supplier_name){
      $tmp_supplier_name = $prsdkgrid->supplier_name;
    }else{
      $new_array[$prsdkgrid->supplier_name]['opt1'] = $prsdkgrid->opt1;
      $new_array[$prsdkgrid->supplier_name]['opt2'] = $prsdkgrid->opt2;
      //and so on
    }
}

第二个选项怎么办?@Glizzweb请再次检查答案
Array(
  ['supplierA'] =>
          Array(
             [0] => array(.....)
             [1] => array(.....)
          ),
  ['supplierB'] =>
         Array(
             [0] => array(.....)
             [1] => array(.....)
          )
) 
    $new_array = [];
    $tmp_supplier_name = '';

foreach($prsdkgrids as $prsdkgrid){

    if($tmp_supplier_name  != $prsdkgrid->supplier_name){
      $tmp_supplier_name = $prsdkgrid->supplier_name;
    }else{
      $new_array[$prsdkgrid->supplier_name]['opt1'] = $prsdkgrid->opt1;
      $new_array[$prsdkgrid->supplier_name]['opt2'] = $prsdkgrid->opt2;
      //and so on
    }
}