First time posting here, I try to follow the questioning guides, sorry if I missed something.
I got a multidimensional array in PHP that do not have the same amount of results. Array[0] contains 6 while Array[1] only contains 4. here’s an example:
Array ( [0] => Array ( [0] => 122.7799987793 [1] => 121.95999908447 [2] => 121.90000152588 [3] => 122.94000244141 [4] => 122.18000030518 [5] => 119.7200012207 ) [1] => Array ( [0] => 37.705001831055 [1] => 37.759998321533 [2] => 37.889999389648 [3] => 38.520000457764 ) )
I managed to sum these 2 multidimentional arrays, using the following code:
$finalresult = array(); foreach($newarray[0] as $k => $v){ $finalresult[$k] = array_sum(array_column($newarray, $k)); }
So my result is:
Array ( [0] => Array ( [0] => 160.4850006104 [1] => 159.719997406 [2] => 159,7900009155 [3] => 161,4600028992 [4] => 122.18000030518 [5] => 119.7200012207 ) )
So the SUM worked fine for the first 4 values, but then the last two are not matching the pattern.
What I am trying to achieve: In my database, I got an average number of each array. So basically what I would like the array_sum to do is:
array[0] + array[0] array[1] + array[1] array[2] + array[2] array[3] + array[3] array[4] + AVERAGE_VAR array[5] + AVERAGE_VAR
To summarise: I am trying to achieve that the array with less values gets filled up with the average_variable_number which I pull from my MySQL database.
I tried a few things, but I can’t wrap my head around it. I’ve been searching for a few days without any luck or tips where I have to look into.
Hope someone can show me an example of what the foreach function should look like to achieve the above.
Thank you a million in advance!!!
Advertisement
Answer
If it’s always just 2 arrays, you can loop up to the longer length, then test whether the element exists in both arrays, replacing a nonexistent element with the default value.
$len = max(count($newarray[0]), count($newarray[1])); for ($i = 0; $i < len; $i++) { $val1 = array_key_exists($i, $newarray[0]) ? $newarray[0][$i] : $default; $val2 = array_key_exists($i, $newarray[1]) ? $newarray[1][$i] : $default; $finalresult[$i] = $val1 + $val2; }