>我在电子商务项目中有 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>";
}
有什么想法吗?
你的for()
应该是
for($i = 0; $i < sizeof($query); $i++)
您的脚本此刻应该冻结,因为您告诉它在sizeof($query) > 0
时循环,因为它总是如此,因为您没有在循环中修改它。