$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' 子数组里有两个优惠信息, 求大神指导 !

解决方案 »

  1.   

    //先预处理一下
    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";
      

  2.   


    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);
    打印一下看看吧
    这是你想要的吗? 
      

  3.   

    不好意思大神们 我是想计算 出 每个商品的'jd_price'-'coupon_price' 和 取出'coupon_type' 
      

  4.   

    不好意思大神们 我是想计算 出 每个商品的'jd_price'-'coupon_price' 和 取出'coupon_type' 
      

  5.   

    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']);什么都有了
      

  6.   

    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";coupon_type:30-单品促销优惠 price:99<br />
    coupon_type:30-单品促销优惠 price:99<br />
      

  7.   

    你把数据结构改一下,算法就简单了而况数据都是从数据库中读出来的
    读出时关联一下什么都有了,何必劳烦 php 慢慢去算