0

eコマースプロジェクト(Code Igniterで構築)に2つのオブジェクトの配列があります。1つは製品オブジェクトの配列で、もう1つは販売アイテムオブジェクトの配列で、製品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>";

}

何か案は?

4

1 に答える 1

1

あなたfor()

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

スクリプトは、ループ中にループするように指示しているため、現時点ではフリーズするはずですsizeof($query) > 0。これは、ループ内で変更しないため、常に保持されます。

于 2012-05-23T13:32:40.720 に答える