2013-10-01 53 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