2013-10-01 55 views
-3

我有問題找出爲什麼這個每個循環都不起作用。當我打印出結果時,它根據薪資數組正確顯示,但是當我嘗試在代碼中使用數據(做薪水*稅)時,它只是做它,它不會通過相應的循環..我很新的編碼,所以請理解:P將無法​​運行php

<?php 




$salaries =array(
635000.00, 420000.00, 260000.00, 150000.00, 550000.00, 90000.00); 
foreach ($salaries as $a) 
{ 
if ($a >= 500000) 
{$t =0.45; 
echo $t; 
} 
else 
{ 
if ($a>=300000 and ($a<=500000)) 
{$t=0.35; 
echo $t; 
} 
if ($a>=200000 and ($a<=300000)) 
{$t=0.2; 
echo $t; 
} 
if ($a>=100000 and ($a<=200000)) 
{$t=0.1; 
echo $t; 
{ 
if ($a>= 100000) 
{$t =0; 
echo $t;  
}}}}} 




?> 
($salaries[0]*$t) 

工作正常,但陣列我有其他成員在下跌它只是讓採摘0.45%爲右稅額。

+2

什麼foreach循環?你上面發佈的代碼是一個扁平的語法錯誤。即使它是正確的,數組中的幾乎所有值都大於10,000,所以最終的$ t = 0將始終運行,並且會在其他if()測試中廢除之前設置的任何$ t。 –

+0

您不需要'<='條件,因爲薪水太高已經被以上條件之一處理過。 – TheWolf

+2

而不是'if($ a> = 100000)'是'if($ a <= 100000)'嗎? –

回答

0

即使代碼不作意義很多,以它在做什麼,這裏是一個修復:

$salaries =array(635000.00, 420000.00, 260000.00, 150000.00, 550000.00, 90000.00); 
foreach($salaries as $a) 
{ 
    if ($a >= 500000) 
    { 
     $t =0.45; 
     echo $t; 
    } 
    elseif ($a>=300000 and ($a<=500000)) 
    { 
     $t=0.35; 
     echo $t; 
    } 
    elseif ($a>=200000 and ($a<=300000)) 
    { 
     $t=0.2; 
     echo $t; 
    } 
    elseif ($a>=100000 and ($a<=200000)) 
    { 
     $t=0.1; 
     echo $t; 
    } 
    else 
    { 
     $t =0; 
     echo $t;  
    } 
} 
+0

@ user2836607請問這是什麼? – Colandus

0

要計算稅額爲每薪水我想不通,在這種情況下, (使用您的編碼風格):

<?php 
$salaries = array(
    635000.00, 
    420000.00, 
    260000.00, 
    150000.00, 
    550000.00, 
    90000.00 
); 
foreach ($salaries as $salary) { 
    if ($salary >= 500000) { 
    $tax = 0.45; 
    echo "<p>Salary: $salary x Tax: $tax = " . $salary * $tax . "</p>"; 
    } else { 
    if ($salary >= 300000 and ($salary <= 500000)) { 
     $tax = 0.35; 
     echo "<p>Salary: $salary x Tax: $tax = " . $salary * $tax . "</p>"; 
    } 
    if ($salary >= 200000 and ($salary <= 300000)) { 
     $tax = 0.2; 
     echo "<p>Salary: $salary x Tax: $tax = " . $salary * $tax . "</p>"; 
    } 
    if ($salary >= 100000 and ($salary <= 200000)) { 
     $tax = 0.1; 
     echo "<p>Salary: $salary x Tax: $tax = " . $salary * $tax . "</p>"; { 
     if ($salary <= 100000) { 
      $tax = 0; 
      echo "<p>Salary: $salary x Tax: $tax = " . $salary * $tax . "</p>"; 
     } 
     } 
    } 
    } 
} 
?> 

輸出:

Salary: 635000 x Tax: 0.45 = 285750 
Salary: 420000 x Tax: 0.35 = 147000 
Salary: 260000 x Tax: 0.2 = 52000 
Salary: 150000 x Tax: 0.1 = 15000 
Salary: 550000 x Tax: 0.45 = 247500