I want to sum entries to an array (dynamic array, data being taken from the database) and return sum of each entry. The multidimensional array has the following shape:
JavaScript
x
<?php
$sample = array(
"term_1_mid" => array(
"English" => 56,
"Mathematics" => 34,
"Creative Arts" => 87),
"term_1_end" => array(
"English" => 67,
"Mathematics" => 59,
"Creative Arts" => 95)
);
What I want to do is add the values of the sample array in “term_1_mid” to the values of the same sample array in “term_1_end”… So the resulting summation output should be something like:
JavaScript
<?php
$result = array(
"English" => 123, // 56 + 67 from above
"Mathematics" => 93, // 34 + 59
"Creative Arts" => 182 // 87 + 95
);
Is there any way I could achieve this?
I tried the following code but it doesn’t seem to work:
JavaScript
<?php
$final_score = [];
array_push($final_score, array_map(function($arr, $arr1) {
return $arr + $arr1;
}, $sample["term_1_mid"], $sample["term_1_end"]));
print_r($final_score);
Advertisement
Answer
Here is the solution for the problem.
JavaScript
<?php
$sample = array(
"term_1_mid" => array(
"English" => 56,
"Mathematics" => 34,
"Creative Arts" => 87),
"terrm_1_end" => array(
"English" => 67,
"Mathematics" => 59,
"Creative Arts" => 95)
);
# Initializing array to store the result
$output_array = array();
# Loop for adding the values
foreach($sample as $sample_key => $sample_value){
foreach ($sample_value as $key => $value){
$output_array[$key] += $value;
}
}
# To check the data in array
foreach($output_array as $key => $value){
# used br tag only to show the each values in each line
echo $key . " => ". $value . "<br>";
}
?>
Output :
JavaScript
English => 123
Mathematics => 93
Creative Arts => 182