2017-08-01 49 views
1

出现漂亮有什么替代方法这是更短的和美丽?目前使用Maatwebsite/Laravel-Excel的Laravel,该代码的替代方式,而不改变其含义

foreach ($rows as $key => $value) 
{ 
    if($value->{'red'} == 1) 
    { 
     DB::table('furnitures')->insert(
     [ 
      'chair' => $value->{'Chair Name'}, 
      'desk' => $value->{'Desk Name'}, 
      'tv' => $value->{'TV Name'}, 
      'lamp' => $value->{'Lamp Name'} 
      'carpet' => 1, 
     ]); 
    } 

    if($value->{'green'} == 1) 
    { 
     DB::table('furnitures')->insert(
     [ 
      'chair' => $value->{'Chair Name'}, 
      'desk' => $value->{'Desk Name'}, 
      'tv' => $value->{'TV Name'}, 
      'lamp' => $value->{'Lamp Name'} 
      'carpet' => 2, 
     ]); 
    } 

    if($value->{'blue'} == 1) 
    { 
     DB::table('furnitures')->insert(
     [ 
      'chair' => $value->{'Chair Name'}, 
      'desk' => $value->{'Desk Name'}, 
      'tv' => $value->{'TV Name'}, 
      'lamp' => $value->{'Lamp Name'} 
      'carpet' => 3, 
     ]); 
    } 
} 

注意 '地毯' 根据颜色(红,绿,蓝)的变化值。你必须问:“为什么所有的条件,如果,为什么不否则,如果?”它的,因为我想所有的值存储与althought所有其他的值不同的“地毯”值相同

回答

1

请尝试是这样的:

$colors = ['red' => 1, 'green' => 2, 'blue' => 3]; 
foreach ($rows as $key => $value) { 
    foreach ($colors as $color_name => $color_value) { 
     if ($value->{$color_name} == 1) { 
      DB::table('furnitures')->insert(
       [ 
        'chair' => $value->{'Chair Name'}, 
        'desk' => $value->{'Desk Name'}, 
        'tv'  => $value->{'TV Name'}, 
        'lamp' => $value->{'Lamp Name'}, 
        'carpet' => $color_value, 
       ] 
      ); 
     } 
    } 
} 
+0

噢,我的,那个代码为太漂亮和美丽!非常感谢你! – begineeeerrrr