Reputation: 858
Hi I have 2 arrays like
array(a) { [0]=> array(2) { ["count"]=> string(2) "22" ["hour"]=> string(1) "0" }
[1]=> array(2) { ["count"]=> string(2) "17" ["hour"]=> string(1) "1" }
[2]=> array(2) { ["count"]=> string(2) "22" ["hour"]=> string(1) "2" }
[3]=> array(2) { ["count"]=> string(2) "15" ["hour"]=> string(1) "3" }
[4]=> array(2) { ["count"]=> string(2) "15" ["hour"]=> string(1) "4" }
}
And I have the second array with different (count) values
array(b) { [0]=> array(2) { ["count"]=> string(2) "12" ["hour"]=> string(1) "0" }
[1]=> array(2) { ["count"]=> string(2) "36" ["hour"]=> string(1) "1" }
[2]=> array(2) { ["count"]=> string(2) "59" ["hour"]=> string(1) "2" }
[3]=> array(2) { ["count"]=> string(2) "5" ["hour"]=> string(1) "3" }
[4]=> array(2) { ["count"]=> string(2) "27" ["hour"]=> string(1) "4" }
}
Can you please tell me how can I get the sum of ["count"]s of both arrays and get a new array like
array(c) { [0]=> array(2) { ["count"]=> string(2) "34" ["hour"]=> string(1) "0" }
[1]=> array(2) { ["count"]=> string(2) "53" ["hour"]=> string(1) "1" }
[2]=> array(2) { ["count"]=> string(2) "81" ["hour"]=> string(1) "2" }
[3]=> array(2) { ["count"]=> string(2) "20" ["hour"]=> string(1) "3" }
[4]=> array(2) { ["count"]=> string(2) "42" ["hour"]=> string(1) "4" }
}
Thank you.
Upvotes: 5
Views: 2151
Reputation: 7784
$result_array = array() ;
for ($i = 0, $length = count($a_array) ; $i < $length ; $i++){
$result_array[$i] = $a_array[$i] ;
$result_array[$i]["count"] += $b_array[$i]['count'] ;
}
var_dump($result_array) ;
Upvotes: 2
Reputation: 4049
//new array to hold answers
$array_results=array();
//loop through first array
foreach ($array_first as $key=>$v){
//use key of current element to get corresponding value from second array
//add them together and add into combined array
$array_results[]=$v['count']+$array_second[$key]['count'];
}
Upvotes: 0
Reputation: 6909
$sum = array();
foreach($array1 as $k=>$v) {
foreach($array2 as $k1=>$v1) {
if($v['hour'] == $v1['hour']) {
$sum[] = array('count'=> ($v['count'] == $v1['count']), 'hour' => $v['hour']);
}
}
}
Should give you a new array, $sum in your specified format. My assumptions are that your first 2 arrays are called $array1 and $array2. Hope that helps.
Upvotes: 0
Reputation: 877
Try this
$count1 = array_count_values($array1);
$count1 = array_count_values($array2);
$count = $count1 + $count2;
Upvotes: 0