How to multiply the rows of a 2D array with each element of a 1D array and sum the results into a new array in PHP

1 Answer

0 votes
function calc(&$result, $key, $arr1d) {
    $sum = 0;
    
    foreach($result as $v)
        $sum += $v * $arr1d[$key];
    
    $result = $sum;
}


$arr1d = array(0.15, 0.3, 0.4, 0.35);

$arr2d  = array
           ( 
             array(3, 7, 10), 
             array(12, 18, 20), 
             array(21, 18, 30), 
             array(47, 50, 55)
           );
           
$result  = array();

$result = $arr2d;

array_walk($result, "calc", $arr1d);

print_r($result);



/*
run:

Array
(
    [0] => 3
    [1] => 15
    [2] => 27.6
    [3] => 53.2
)

*/

 



answered Jun 10, 2024 by avibootz
...