时间:2021-07-01 10:21:17 帮助过:7人阅读
foreach($mall_tems as $mall_tem){    // 使用的 Laravel,$current_mall 就代表获取当前循环的数据吧。    $current_mall = find($mall_tem->id);     foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;        }else{            $current_mall->price = '129.00';        }    }}  
除了 $current_mall 含义不明外,并无什么问题
除了 $current_mall 含义不明外,并无什么问题
  你的 $current_mall 是单个对象,并且总是在内层循环里赋值  
 由于你省略代码时把关键点省略了:$current_mall->save() 在哪里执行的  
 所以不能明确的说什么  
  
 按一般的做法,既然不匹配时 也是要赋值的,就可理解为 $current_mall 是有初值的  
  
    $current_mall->price = '129.00';    foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;            break; //匹配到就结束        }    }    $current_mall->save();  
   你的 $current_mall 是单个对象,并且总是在内层循环里赋值   
 由于你省略代码时把关键点省略了:$current_mall->save() 在哪里执行的   
 所以不能明确的说什么   
   
 按一般的做法,既然不匹配时 也是要赋值的,就可理解为 $current_mall 是有初值的   
   
    $current_mall->price = '129.00';    foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;            break; //匹配到就结束        }    }    $current_mall->save();