PHP 计算两个数组然后相加
PHP calculating two arrays and then add their sum
我想计算一个数组到另一个数组,然后像这样添加两者:
Array1(4,8,7,12);
Array2(3,6);
结果是这样的:
3x4+3x8+3x7+3x12+6x4+6x8+6x7+6x12 = 279
我尝试使用此代码,但由于我对 php 还是个新手,所以我仍然没有提供任何提示很高兴提前致谢
<?php
tab1(4,8,7,12);
tab2(3,6);
$s=0;
for($i=0; $i<$tab1[3]; $i++){
for($j=0; $j<$tab2[1]; $j++){
$s = $s + tab[i] * tab[j];
}
echo "$s";
}
?>
这其实是小菜一碟。我不确定 tab1
是什么意思,但我假设您正在尝试使用此函数来获取所需(输入)数字的数组。
使用 foreach
循环遍历两个数组,我想出了下面的代码:
<?php
$a = [4,8,7,12];
$b = [3,6];
$sum = 0;
foreach ($b as $valueInB) {
foreach ($a as $valueInA) {
$sum += $valueInA * $valueInB;
}
}
echo $sum;
?>
这导致:
279
如果您坚持使用 for
循环,您可以 运行 下面的代码得到相同的结果:
<?php
$a = [4,8,7,12];
$b = [3,6];
$sum = 0;
$bLength = count($b);
$aLength = count($a);
for ($i=0; $i < $bLength ; $i++) {
$valueInB = $b[$i];
for ($j=0; $j < $aLength ; $j++) {
$valueInA = $a[$j];
$sum += $valueInA * $valueInB;
}
}
echo $sum;
?>
请注意,您应该在循环之外使用 count
,因为遍历数组并每次调用 count
并不是一种有效的方法。 (感谢 Will B 的评论)
对于没有迭代的更简单的方法,您可以在两个数组上使用 array_sum
。
$a = [4,8,7,12];
$b = [3,6];
$c = array_sum($a) * array_sum($b);
var_dump($c);
结果
int(279)
之所以有效,是因为以下操作的顺序:
(3*4) + (3*8) + (3*7) + (3*12) + (6*4) + (6*8) + (6*7) + (6*12) = 279
等于a
的总和乘以b
的总和:
(4+8+7+12) * (3+6) = 279
我想计算一个数组到另一个数组,然后像这样添加两者:
Array1(4,8,7,12);
Array2(3,6);
结果是这样的: 3x4+3x8+3x7+3x12+6x4+6x8+6x7+6x12 = 279
我尝试使用此代码,但由于我对 php 还是个新手,所以我仍然没有提供任何提示很高兴提前致谢
<?php
tab1(4,8,7,12);
tab2(3,6);
$s=0;
for($i=0; $i<$tab1[3]; $i++){
for($j=0; $j<$tab2[1]; $j++){
$s = $s + tab[i] * tab[j];
}
echo "$s";
}
?>
这其实是小菜一碟。我不确定 tab1
是什么意思,但我假设您正在尝试使用此函数来获取所需(输入)数字的数组。
使用 foreach
循环遍历两个数组,我想出了下面的代码:
<?php
$a = [4,8,7,12];
$b = [3,6];
$sum = 0;
foreach ($b as $valueInB) {
foreach ($a as $valueInA) {
$sum += $valueInA * $valueInB;
}
}
echo $sum;
?>
这导致:
279
如果您坚持使用 for
循环,您可以 运行 下面的代码得到相同的结果:
<?php
$a = [4,8,7,12];
$b = [3,6];
$sum = 0;
$bLength = count($b);
$aLength = count($a);
for ($i=0; $i < $bLength ; $i++) {
$valueInB = $b[$i];
for ($j=0; $j < $aLength ; $j++) {
$valueInA = $a[$j];
$sum += $valueInA * $valueInB;
}
}
echo $sum;
?>
请注意,您应该在循环之外使用 count
,因为遍历数组并每次调用 count
并不是一种有效的方法。 (感谢 Will B 的评论)
对于没有迭代的更简单的方法,您可以在两个数组上使用 array_sum
。
$a = [4,8,7,12];
$b = [3,6];
$c = array_sum($a) * array_sum($b);
var_dump($c);
结果
int(279)
之所以有效,是因为以下操作的顺序:
(3*4) + (3*8) + (3*7) + (3*12) + (6*4) + (6*8) + (6*7) + (6*12) = 279
等于a
的总和乘以b
的总和:
(4+8+7+12) * (3+6) = 279