2016-10-02 3 views
0

Ich versuche, über meine multidimensionalen Array zu iterieren, um den Index des ausgewählten Werts für jedes verschachtelte Array zu erhalten. Zum Beispiel, wenn ich meine Schleife leite, vergleiche ich $ Einkommen, um zu sehen, ob es zwischen den 'Bereichen' jedes Feldes ist. Wenn der 'Bereich' gefunden wird, möchte ich diesen Bereich $ x nehmen und ihn verwenden, um Kalkulationen basierend auf den 'MinTax' und 'Raten' für jedes verschachtelte Array zu erstellen. Bisher bin ich in der Lage, über das $ TAX_RATES-Array zu iterieren, bin mir aber nicht sicher, wie ich den Index jedes verschachtelten Arrays speichern soll. Ich bin mir nicht sicher, was ich bis zu diesem Punkt tun soll. Hier ist der Code.Iterate über Multidimensional Arry für bestimmte Werte

<?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); 

?> 
+0

Im frage mich, ob ich die Indizes in einem Array gespeichert werden sollte und das Array zurück und das Array verwenden, um die caluculations zu machen auf für jede verschachtelte Array –

Antwort

0

Ich konnte es dank dieses Forums herausfinden. https://www.codecademy.com/en/forum_questions/556d9d0ad3292f03fb000558. Hier ist mein neuer Code.

function incomeTax($income){ 
    foreach(TAX_RATES as $lvl => $lvl_data){   
     for($i=0; $i<count(TAX_RATES[$lvl]['Ranges']); $i++){ 
      for($l=0; $l<count(TAX_RATES[$lvl]['Ranges'][$i]); $l++){ 

      if($income>=TAX_RATES[$lvl]['Ranges'][$i] 
      && $income<=TAX_RATES[$lvl]['Ranges'][$i+1]) 
      { 
      echo $i; 
      } 
      } 
     } 

    } 
}; 
+0

Diese Indizes von jedem Array ausdruckt, die von innerhalb der Bedingungen fallen meine wenn Aussage. –