比较两个对象数组并替换值

时间:2012-05-23 13:21:07

标签: php codeigniter for-loop e-commerce

我在电子商务项目中有2个对象数组(内置在Code Igniter中),一个是产品对象数组,另一个是销售商品对象数组,包含产品ID和折扣金额。我需要比较数组,这样我就可以在新产品中加价,但我似乎无法正确编码循环。这是我目前的代码:

private function checkSalesProducts($query) {  //$query is an array of product objects 

    $this->db->select("sale_product, sale_discount");
    $salesItems = $this->db->get("sale_items");

    foreach($salesItems->result() as $salesItem)
    {

        for($i=0; sizeof($query); ++$i)
        {

            if($salesItem->sales_product == $query[$i]->prod_id)
            {

                $query[$i]->prod_price = $query[$i]->prod_price * (1 - $salesItem->sales_discount);
                $query[$i]->sale_item = true;
                break;

            }

        }

    }

    echo "<pre>";
    print_r($query);
    echo "</pre>";

}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的for()应该是

for($i = 0; $i < sizeof($query); $i++)

你的脚本应该暂时冻结,因为你告诉它在sizeof($query) > 0循环,它总是有,因为你没有在循环中修改它。