Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何以表格格式显示一组数据?_Php_Laravel - Fatal编程技术网

Php 如何以表格格式显示一组数据?

Php 如何以表格格式显示一组数据?,php,laravel,Php,Laravel,我有一个数组要以表格格式显示 我的桌子应该是这样显示的 Dept: Dept 1 No Name BankCode Amount 1. Name4 656789 119.20 Dept: Dept 2 No Name BankCode Amount 1. Name 1 DREW1CF 2775.24 2. Name 2 DREW1CF 907.28 3. Name 3

我有一个数组要以表格格式显示

我的桌子应该是这样显示的

Dept: Dept 1
No     Name    BankCode      Amount
1.     Name4   656789        119.20

Dept: Dept 2
No     Name    BankCode      Amount
1.     Name 1  DREW1CF       2775.24
2.     Name 2  DREW1CF       907.28
3.     Name 3  EWDR1CF       318.60
这是我的数组

array:38 [▼
  0 => {#389 ▼
    +"FullName": "Name 1"
    +"BankCode": "DREW1CF"
    +"EntityName": "Dept 2"
    +"amount": "2775.24"
  }
  1 => {#391 ▼
    +"FullName": "Name 2"
    +"BankCode": "DREW1CF"
    +"EntityName": "Dept 2"
    +"amount": "907.28"
  }
  2 => {#392 ▼
    +"FullName": "Name 3"
    +"BankCode": "EWDR1CF"
    +"EntityName": "Dept 2"
    +"amount": "318.60"
  }
  3 => {#393 ▼
    +"FullName": "Name 4"
    +"BankCode": "656789"
    +"EntityName": "Dept 1"
    +"amount": "119.20"
  }
  4 => {#394 ▶}
  5 => {#395 ▶}
  .....and so on
]
Laravel框架中的代码

目前,我被我的foreach卡住了

如果我像下面这样做,它将不会像我需要的那样显示

我如何实现foreach以满足我的需要

我不太擅长foreach,尤其是$key=>$value

@php
$i = 1;
@endphp
@foreach ($getClaim as $claims)
<tr>
  <td>@php
      echo $i++
      @endphp</td>
  <td>{{$claims->FullName}}</td>
  <td>{{$claims->BankCode}}</td>
  <td>{{number_format($claims->amount, 2, '.', ',')}}</td>
</tr>
@endforeach
@php
$i=1;
@endphp
@foreach($getClaim作为$claims)
@php
回声$i++
@endphp
{{$claims->FullName}
{{$claims->BankCode}
{{number_格式($claims->amount,2,',',')}
@endforeach

在创建表格之前对数据进行分组:

$groupedClaims = array_reduce($claims, function ($groups, $item) {
    if ($group = data_get($groups, $item->EntityName)) {
        // Using the spread operator
        data_set($groups, $item->EntityName, [ $item, ...$group ]);
        // Using array merge
        data_set($groups, $item->EntityName, array_merge($group, [$item]));
    } else {
        data_set($groups, $item->EntityName, [ $item ]);
    }
    return $groups;
}, []);
然后在视图文件中:

@foreach ($groupedClaims as $dept => $claims)
    <tr>
        <td colspan="4">Dept: {{ $dept }}</td>
    </tr>
    <tr>
        <td>No</td>
        <td>Name</td>
        <td>BankCode</td>
        <td>Amount</td>
    </tr>
    @foreach ($claims as $idx => $claim)
    <tr>
        <td>{{ $idx }}</td>
        <td>{{ optional($claim)->FullName ?? 'No FullName' }}</td>
        <td>{{ optional($claim)->BankCode ?? 'No BankCode' }}</td>
        <td>{{ number_format(optional($claim)->amount ?? 0, 2, '.', ',') }}</td>
    </tr>
    @endforeach
@endforeach
@foreach($groupedClaims作为$dept=>$claims)
部门:{{$Dept}
不
名称
银行代码
数量
@foreach($idx=>$claim形式的索赔)
{{$idx}}
{{可选($claim)->FullName???'No FullName'}
{{可选($claim)->银行代码???无银行代码}
{{number_格式(可选($claim)->金额??0,2'.','.',')}
@endforeach
@endforeach

您如何检测
部门:部门1
部分?您是否需要两个表,一个用于部门1,另一个用于部门2,或者两个表都应该在一个表中?您能解释一下分组数据的代码吗?使用此代码,它可以像我需要的那样显示。但是有错误。如果我删除@foreach($idx=>$claim)部分。没关系。尝试获取非对象的属性时出错。它指的是$claim->FullName您的原始数组中是否有一个声明没有有效的FullName?循环假定所有数组元素都是统一和完整的。
data\u get
data\u set
是Laravel中获取和设置数组/对象中数据的辅助方法<如果提供的索引未设置/null,则code>data\u get将返回null。语法是否正确
data\u set($groups,$item->EntityName,[…$group,$item])?它有
..$group
..
是分解数组结构的。