您能给我解决这个问题的建议吗?
我得到了这样的数据:
orders =[
{
orderID:1,
Name: 'Sam',
orderList: [
{SKU: 'A001',Qty: 2},{SKU: 'A003',Qty: 4}
]
},
{
orderID:2,
Name: 'Sam',
orderList: [
{SKU: 'A001',Qty: 1},{SKU: 'A002',Qty: 1}
]
},
{
orderID:3,
Name: 'Sam',
orderList: [
{SKU: 'A001',Qty: 2},{SKU: 'A004',Qty: 2}
]
},
{
orderID:4,
Name: 'Sam',
orderList: [
{SKU: 'A003',Qty: 3},{SKU: 'A002',Qty: 1}
]
},
{
orderID:5,
Name: 'Sam',
orderList: [
{SKU: 'A002',Qty: 1},{SKU: 'A003',Qty: 1}
]
}
]
//foreach 之后我想输出每个订单项目并收集它们的 SKU 和数量,例如:
foreach ($orders as $order) {
echo <td>$order.orderList.sku</td>
echo <td>$order.orderList.qty</td>
//output a table like:
/*
item | Qty
A001 | 5
A002 | 4
A003 | 8
A004 | 2
B001 | 1
/*
}
请给我一些建议,非常感谢!
您可以通过以下方式达到您的要求:
SKU
及其总数。SKU
的数量。$skuTotals = [];
foreach ($orders as $order) {
foreach ($order['orderList'] as $item) {
if (array_key_exists($item['SKU'], $skuTotals)) {
$skuTotals[$item['SKU']] += $item['Qty'];
} else {
$skuTotals[$item['SKU']] = $item['Qty'];
}
}
}
# Print table elements or perform actions as per your requirement
foreach ($skuTotals as $sku => $qty) {
echo "<tr><td>$sku</td><td>$qty</td></tr>";
}