2017-08-01 38 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