You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP按supplier_id分组的多维数组循环打印无结果如何解决

问题根因
  • 你分组后的$datacart['data']是关联数组,键为supplier_id的值(如示例中的6、8),不是从0开始的连续数值索引,你使用for循环从0开始按数字索引访问,指向的元素不存在,所以无输出。
  • 每个supplier_id对应的键值是包含多个商品的子数组,不能直接访问['id']字段,需要先遍历子数组拿到单个商品的信息。
正确遍历方案

优先使用foreach遍历关联数组,代码更简洁不易出错:

$datacart = ['data' => $datacartgroup];

// 第一层遍历所有供应商分组
foreach ($datacart['data'] as $supplierId => $products) {
    // 可在此处输出供应商分组标题
    echo "<div>供应商ID:{$supplierId}</div>";
    // 第二层遍历该供应商下的所有商品
    foreach ($products as $item) {
        // 按需输出商品字段,此处示例输出id和商品名
        echo "<div>商品ID:{$item['id']},商品名:{$item['product_name']},购买数量:{$item['jumlah']}</div>";
    }
}

如果必须使用for循环,需要先将关联数组转为索引数组:

$datacart = ['data' => $datacartgroup];
// 将关联数组转为索引数组
$supplierIndex = array_values($datacart['data']);
$supplierCount = count($supplierIndex);

for ($i = 0; $i < $supplierCount; $i++) {
    $products = $supplierIndex[$i];
    $productCount = count($products);
    for ($j = 0; $j < $productCount; $j++) {
        echo $products[$j]['id'];
    }
}

内容的提问来源于stack exchange,提问作者masbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:48:01