从 PHP 中的两个数组变量相乘
Multiplying from two array variable in PHP
假设..我有这样的数据
wij = [0.5, 0.30, 0.25, 0.15, 0.25]
和
如您所见.. wij 中的每个数据代表从 C1 到 C5 从 table 以上
C1=0.5,C2=0.30,C3=0.25,C4=0.15,C5=0.25
所以..我将 wij 创建成数组变量,如下所示:
$wij = array(0.5, 0.30, 0.25, 0.15, 0.25);
和 A1 直到 A5 行到数组变量中:
$nij = array(
array(150, 15, 2, 2, 3);
array(500, 200, 2, 3, 2);
array(200, 10, 3, 1, 3);
array(350, 100, 3, 1, 2);
);
我想将 wij 的每个数据与 A1 到 A5 行的数据相乘,所以它看起来像这样:
A1 = (0.5*150)+(0.30*15)+(0.25*2)+(0.15*2)+(0.25*3)
A2 = (0.5*500)+(0.30*200)+(0.25*2)+(0.15*3)+(0.25*2)
A3 = (0.5*200)+(0.30*10)+(0.25*3)+(0.15*1)+(0.25*3)
A4 = (0.5*350)+(0.30*100)+(0.25*3)+(0.15*1)+(0.25*2)
我不知道如何使用 for 循环或 foreach 循环来完成它。因为 table 中的每一行并不总是像上面的 table 那样有 4 个数据,它总是可以有 5 行或更多,所以我想如果使用 for 循环它会起作用。
<?php
$wij = array(0.5, 0.30, 0.25, 0.15, 0.25);
$array1 = array(150, 15, 2, 2, 3);
$array2 = array(500, 200, 2, 3, 2);
$array3 = array(200, 10, 3, 1, 3);
$array4 = array(350, 100, 3, 1, 2);
$arrays = array($array1,$array2,$array3,$array4);
$as = array(0,0,0,0);
for($i = 0;$i<4;$i++)
{
for($t = 0;$t<5;$t++)
{
$as[$i] += ($wij[$t]*$arrays[$i][$t]);
}
echo "</br>".$as[$i];
}
?>
如果你愿意,我可以解释for循环。
假设..我有这样的数据
wij = [0.5, 0.30, 0.25, 0.15, 0.25]
和
如您所见.. wij 中的每个数据代表从 C1 到 C5 从 table 以上
C1=0.5,C2=0.30,C3=0.25,C4=0.15,C5=0.25
所以..我将 wij 创建成数组变量,如下所示:
$wij = array(0.5, 0.30, 0.25, 0.15, 0.25);
和 A1 直到 A5 行到数组变量中:
$nij = array(
array(150, 15, 2, 2, 3);
array(500, 200, 2, 3, 2);
array(200, 10, 3, 1, 3);
array(350, 100, 3, 1, 2);
);
我想将 wij 的每个数据与 A1 到 A5 行的数据相乘,所以它看起来像这样:
A1 = (0.5*150)+(0.30*15)+(0.25*2)+(0.15*2)+(0.25*3)
A2 = (0.5*500)+(0.30*200)+(0.25*2)+(0.15*3)+(0.25*2)
A3 = (0.5*200)+(0.30*10)+(0.25*3)+(0.15*1)+(0.25*3)
A4 = (0.5*350)+(0.30*100)+(0.25*3)+(0.15*1)+(0.25*2)
我不知道如何使用 for 循环或 foreach 循环来完成它。因为 table 中的每一行并不总是像上面的 table 那样有 4 个数据,它总是可以有 5 行或更多,所以我想如果使用 for 循环它会起作用。
<?php
$wij = array(0.5, 0.30, 0.25, 0.15, 0.25);
$array1 = array(150, 15, 2, 2, 3);
$array2 = array(500, 200, 2, 3, 2);
$array3 = array(200, 10, 3, 1, 3);
$array4 = array(350, 100, 3, 1, 2);
$arrays = array($array1,$array2,$array3,$array4);
$as = array(0,0,0,0);
for($i = 0;$i<4;$i++)
{
for($t = 0;$t<5;$t++)
{
$as[$i] += ($wij[$t]*$arrays[$i][$t]);
}
echo "</br>".$as[$i];
}
?>
如果你愿意,我可以解释for循环。