PHP如何对JSON产品数据按供应商分组并输出对应产品列表
实现按供应商ID分组的PHP代码逻辑
首先修正你原有代码的一处结构错误:你的JSON数据里结果集路径是$datainventory['data']['results'],原代码count时误用了inventory键,会直接导致运行报错。
核心实现思路
- 初始化一个空的分组数组,以
supplier_id作为数组键,对应的值存储该供应商下的所有产品列表 - 遍历原始结果集,将每条产品数据推入对应供应商ID的分组下
- 最后遍历分组数组,按需求格式输出即可
完整可运行代码
// 解析JSON数据 $datainventory = json_decode($jsondata, true); // 初始化分组存储数组 $groupBySupplier = []; // 遍历所有产品结果,完成分组逻辑 foreach ($datainventory['data']['results'] as $item) { $supplierId = $item['supplier_id']; // 该供应商首次出现时,先初始化对应空数组 if (!isset($groupBySupplier[$supplierId])) { $groupBySupplier[$supplierId] = []; } // 将当前产品推入对应供应商的分组中 $groupBySupplier[$supplierId][] = $item; } // 输出分组后的结果 foreach ($groupBySupplier as $supplierId => $products) { echo "供应商ID:" . $supplierId . "<br>"; echo "关联产品列表:<br>"; foreach ($products as $product) { echo "- " . $product['product_name'] . "(变体:" . $product['varian_name'] . ",数量:" . $product['jumlah'] . ")<br>"; } echo "<hr>"; }
输出效果示例
供应商ID:6
关联产品列表:
- Tripod octopus(变体:Varian Acak,数量:1)
供应商ID:8 关联产品列表: - Pembersih Mata Buah Nanas(变体:Acak,数量:3) - Gunting dahan pohon(变体:gunting dahan,数量:1)
内容的提问来源于stack exchange,提问作者masbro
相关产品推荐
相关产品推荐

