在php数组中乘以元素

时间:2013-03-10 17:23:10

标签: php arrays for-loop

我有一个非常简单的问题,但由于某种原因输出不是我想要的。 我有2个阵列:

total_hours = array(10, 20, 30);
hourly_rate = array(15, 10, 15);

所以我想要解决的是如何将total_hours的相应元素与hourly_rate复用(例如,元素1:10 * 15 = 150),然后将其放入名为{{的数组中1}}(total_sum已初始化)。这就是我到目前为止所做的:

total_sum

目前我得0,不明白为什么。

非常感谢!

4 个答案:

答案 0 :(得分:1)

您可以使用带有匿名函数的array_map将小时数乘以费率。 array_map迭代给定的数组并将结果作为数组返回。查看http://php.net/manual/en/function.array-map.php了解更多信息。

$total_hours = array(10, 20, 30);
$hourly_rate = array(15, 10, 15);    

$total_pay = array_map(function($hour, $rate) {
    return $hour * $rate;
}, $total_hours, $hourly_rate);

答案 1 :(得分:0)

你不希望有两个循环,只有一个:

$total_pay = array();
for($i=0; $i < count($hourly_rate); $i++) {
  $total_pay[] = $hourly_rate[$i]*$total_hours[$i]; 
}

要获得最终数组的总和,请使用array_sum

答案 2 :(得分:0)

以下内容基于this answer by Aarolama Bluenk,只要两个数组的大小相同,就应该有效:

for($i = 0; $i < count($total_hours); $i++) {
    $result[] = $total_hours[$i] * $hourly_rate[$i];
}

答案 3 :(得分:0)

$total_hours = array(10, 20, 30);
$hourly_rate = array(15, 10, 15);

$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($total_hours));
$mi->attachIterator(new ArrayIterator($hourly_rate));

$total_pay = array();
foreach($mi as $details) {
    $total_pay[] = $details[0] * $details[1];
}