首页 > 解决方案 > 由于尝试将总和放入数组而导致的未定义偏移错误

问题描述

 foreach ($pos as $po) {
            $po_value[] = 0;
            $po_item_total = 0;
            foreach ($po->po_items as $po_item) {
                $po_item_total = $po_item->qty * $po_item->rate;
                $po_value[$po->id] = $po_value[$po->id] + $po_item_total;
            }
        }

这条线

$po_value[$po->id] = $po_value[$po->id] + $po_item_total;

导致未定义的偏移错误。能否请你帮忙

标签: laravel

解决方案


您没有将 $po_value 数组的键设置为 $po->id 并且在第二个 foreach 的第一次迭代中您正在寻找它并且它丢失了。

这应该解决它:

$po_value[$po->id] = 0;

简化版:

foreach($pos as $po){
    $po_total[$po->id] = 0;
    foreach($po->po_items as $po_item){
        $po_total[$po->id]+= $po_item->qty * $po_item->rate;
    }
}

推荐阅读