php计算优惠信息 求计算算法 谢谢
- PHP code
$arr=array('item_info_list' => Array ( '0' => Array ( 'sku_id' => '1003244250', 'ware_id' => '1001418658', 'jd_price' => '269.00', 'sku_name' => '百事PEPSI 男式板鞋 2012新款夏季透气舒适男款经典休闲板鞋 猎人绿 40', 'outer_sku_id' => '40872121106', 'product_no' => '872121101 872121102 872121104 872121105', 'gift_point' => '0', 'item_total' => '1', ) , '1' => Array ( 'sku_id' => '1003244255', 'ware_id' => '1001418658', 'jd_price' => '269.00', 'sku_name' => '百事PEPSI 男式板鞋 2012新款夏季透气舒适男款经典休闲板鞋 暗红 39', 'outer_sku_id' => '39872121105', 'product_no' => '872121101 872121102 872121104 872121105', 'gift_point' => '0', 'item_total' => '1', ) ) , 'coupon_detail_list' => Array ( '0' => Array ( 'order_id' => '213978711', 'sku_id' => '1003244250', 'coupon_type' => '30-单品促销优惠', 'coupon_price' => '170.00', ) , '1' => Array ( 'order_id' => '213978711', 'sku_id' => '1003244255', 'coupon_type' => '30-单品促销优惠', 'coupon_price' => '170.00', ) ))
求计算实际价格的算法 有时候'item_info_list' 子数组里只有一个商品 'coupon_detail_list' 子数组里只有一个优惠信息
而有时候候'item_info_list' 子数组里只有一个商品 'coupon_detail_list' 子数组里没有优惠信息,有时候'item_info_list' 子数组里只有两个商品 'coupon_detail_list' 子数组里只有一个优惠信息,有时候'item_info_list' 子数组里只有两个商品 'coupon_detail_list' 子数组里有两个优惠信息, 求大神指导 !
[解决办法]
你最后想要什么结果。
[解决办法]
//先预处理一下
foreach($arr['item_info_list'] as $v) $item_info_list[$v['sku_id']] = $v;
foreach($arr['coupon_detail_list'] as $v) $coupon_detail_list[$v['sku_id']] = $v;
foreach($item_info_list as $k=>$v)
echo "sku_id:$k price:" . isset($coupon_detail_list[$k]) ? $coupon_detail_list[$k]['coupon_price'] : $v['jd_price'], "<br />\n";
[解决办法]
- PHP code
foreach ($arr['item_info_list'] as $key=>$val){ if(isset($arr['coupon_detail_list'][$key])) $arr['item_info_list'][$key] = array_merge($val, $arr['coupon_detail_list'][$key]);}print_r($arr);
[解决办法]
foreach ($arr['item_info_list'] as $key=>$val)
{
if(isset($arr['coupon_detail_list'][$key]))
{
$arr['item_info_list'][$key] = array_merge($val, $arr['coupon_detail_list'][$key]);
$arr['item_info_list'][$key]['price'] = $val['jd_price'] - $arr['coupon_detail_list'][$key]['coupon_price'];
}
}
print_r($arr['item_info_list']);
什么都有了
[解决办法]
- PHP code
foreach($arr['item_info_list'] as $v) $item_info_list[$v['sku_id']] = $v;foreach($arr['coupon_detail_list'] as $v) $coupon_detail_list[$v['sku_id']] = $v;foreach($item_info_list as $k=>$v) echo "coupon_type:{$coupon_detail_list[$k]['coupon_type']} price:" . ($v['jd_price'] - ( isset($coupon_detail_list[$k]) ? $coupon_detail_list[$k]['coupon_price'] : 0)) . "<br />\n";
[解决办法]
你把数据结构改一下,算法就简单了
而况数据都是从数据库中读出来的
读出时关联一下什么都有了,何必劳烦 php 慢慢去算
[解决办法]
噢!
其实我给的算法已经很简单了
#4 和 #7 的代码是不能用的,没有把商品和优惠对应起来