There is a 1st array:

Array ( [0] => Array ( [date1] => 19.08.2016 [money] => 500 ) [1] => Array ( [date1] => 18.08.2016 [money] => 800 ) [2] => Array ( [date1] => 17.08.2016 [money] => 1500 ) 

From this array, you need to subtract money from the second array (bouns):

 Array ( [0] => Array ( [date1] => 19.08.2016 [bonus] => 100 ) [1] => Array ( [date1] => 18.08.2016 [bonus] => 500 ) [2] => Array ( [date1] => 17.08.2016 [bonus] => 0.00 ) 

To make it like this:

 Array ( [0] => Array ( [date1] => 19.08.2016 [money] => 400 ) [1] => Array ( [date1] => 18.08.2016 [money] => 300 ) [2] => Array ( [date1] => 17.08.2016 [money] => 1500 ) 

There is such a cycle, but it does not work:

 foreach ($arr_money as $key => $value) { foreach ($arr_bonus as $k => $v) { $arr_money[$key]['money'] -= $v['bonus']; } } 
  • one
    Your mistake is that you use a double loop where you can do with one. Considering that you have numeric indices, it may be more convenient to use the usual for, rather than foreach loop. - Astronavigator
  • And I have a question like 1500 - 0.00 = 0.00 - Naumov

1 answer 1

 $array_money = array( array( 'date1' => '19.23.2016', 'money' => 500 ), array( 'date2' => '18.23.2016', 'money' => 500 ), array( 'date3' => '17.23.2016', 'money' => 500 ), ); $array_bonus = array( array( 'date1' => '19.23.2016', 'bonus' => 400 ), array( 'date2' => '18.23.2016', 'bonus' => 300 ), array( 'date3' => '17.23.2016', 'bonus' => 100 ), ); for ($i = count($array_money)-1; $i >= 0; $i--) { $array_money[$i]['money'] -= $array_bonus[$i]['bonus']; } 
  • There is another option through foreach foreach ($array_money as $key => $value) { $array_money[$key]['money'] -= $array_bonus[$key]['bonus']; } foreach ($array_money as $key => $value) { $array_money[$key]['money'] -= $array_bonus[$key]['bonus']; } - GONG