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
..
是分解数组结构的。