我有一个非常简单的问题,但由于某种原因输出不是我想要的。 我有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,不明白为什么。
非常感谢!
答案 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];
}