【发布时间】:2016-10-02 13:49:19
【问题描述】:
我正在尝试遍历我的多维数组以获取每个嵌套数组的选定值的索引。例如,当我运行循环时,我正在比较 $income 以查看它是否在每个数组的“范围”之间。当找到“范围”时,我想采用该范围 $x 并使用它根据每个嵌套数组的“MinTax”和“Rates”进行计算。到目前为止,我能够遍历 $TAX_RATES 数组,但不确定如何存储每个嵌套数组的索引。到目前为止还不确定该怎么做。这是代码。
<?php
$income = filter_input(INPUT_POST, 'income');
define('TAX_RATES',
array(
'Single' => array(
'Rates' => array(10,15,25,28,33,35,39.6),
'Ranges' =>array(0,9275,37650,91150,190150,413350,415050),
'MinTax'=>array(0,927.50,5183.75,18558.75,46278.75,119934.75,120529.75),
),
'Married_Jointly' =>array(
'Rates' => array(10,15,25,28,33,35,39.6),
'Ranges' =>array(0,18550,75300,151900,231450,413350,466950),
'MinTax' =>array(0,1855.00,10367.50,29517.50,51791.50,111818.50,130578.50),
),
'Married_Seperately' =>array(
'Rates' => array(10,15,25,28,33,35,39.6),
'Ranges' =>array(0,9275,37650,75950,115725,206675,233475),
'MinTax'=>array(0,927.50,5183.75,14758.75,25895.75,5599.25,65289.25),
),
'Head_Household' =>array(
'Rates' => array(10,15,25,28,33,35,39.6),
'Ranges' =>array(0,13250,50400,130150,210800,413350,441000),
'MinTax' => array(0,1325.00,6897.50,26835.00,49417,116258.50,125936)
)
)
);
function incomeTax($income){
foreach(TAX_RATES as $lvl => $lvl_data){
$x=0;
while ($x <=7){
if($income>=TAX_RATES[$lvl]['Ranges'][$x]
&& $income<=TAX_RATES[$lvl]['Ranges'][$x+1]){
return $income=TAX_RATES[$lvl]['MinTax'][$x]
+((TAX_RATES[$lvl]['Rates'][$x]*.01)
*($income-(TAX_RATES[$lvl]['Ranges'][$x])));
}
$x++;
}
}
};
$results = incomeTax($income);
?>
【问题讨论】:
-
我想知道是否应该将索引存储在数组中并返回数组并使用数组对每个嵌套数组进行计算
标签: php loops multidimensional-array