3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr1 = array( array('date'=>"2018-06-23",'size'=>"L",'type'=>"shoes",'value_one'=>"66"), array('date'=>"2018-06-23",'size'=>"XL",'type'=>"shirt",'value_one'=>"43"), array('date'=>"2018-06-23",'size'=>"M",'type'=>"Bag",'value_one'=>"23") ); $arr2 = array( array('date'=>"2018-06-23",'size'=>"L",'type'=>"shoes",'value_two'=>"28"), array('date'=>"2018-06-23",'size'=>"XL",'type'=>"shirt",'value_two'=>"56"), array('date'=>"2018-06-23",'size'=>"M",'type'=>"Bag",'value_two'=>"14"), array('date'=>"2018-06-23",'size'=>"S",'type'=>"Cap",'value_two'=>"29") ); $final = $arr1; foreach ($arr2 as $value) { $flag = 0; foreach ($final as $key => $data) { if ($data['date']===$value['date'] && $data['size']===$value['size'] && $data['type']===$value['type']) { $final[$key]['value_two'] = $value['value_two']; $flag = 1; break; } } if ($flag === 0) { array_push($final, $value); } } echo "<pre>"; print_r($final);
Output for 5.6.38 - 5.6.40, 7.0.33, 7.1.0 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
<pre>Array ( [0] => Array ( [date] => 2018-06-23 [size] => L [type] => shoes [value_one] => 66 [value_two] => 28 ) [1] => Array ( [date] => 2018-06-23 [size] => XL [type] => shirt [value_one] => 43 [value_two] => 56 ) [2] => Array ( [date] => 2018-06-23 [size] => M [type] => Bag [value_one] => 23 [value_two] => 14 ) [3] => Array ( [date] => 2018-06-23 [size] => S [type] => Cap [value_two] => 29 ) )

preferences:
109.07 ms | 410 KiB | 5 Q