我有一个挑战乘以两个数组。 这就是我打算做的事情
Array1 ( [0] => 2 [1] => 2 )
Array2 ( [0] => 8000.00 [1] => 1234.00 )
每当我乘以它时,它会将其分解为4并返回结果
Array ( [0] => 16000 [1] => 16000 [2] => 2468 [3] => 2468 )
然而,当我传递单个数据时,它就是正确的。 这是我的代码,我将感谢任何帮助。感谢
$total = array();
foreach($office_price as $price){
foreach($office_quantity as $quantity){
$total[] = $price * $quantity;
}
}
答案 0 :(得分:16)
您可以为array_map
提供多个数组,它将处理相应的元素:
$total = array_map(function($x, $y) { return $x * $y; },
$office_price, $office_quantity);
答案 1 :(得分:1)
你遍历两个数组,所以你得到每个值两次。
如您所知,使用键和值构建数组。
在这种程度上使用你的foreach:
$total = array();
foreach ($office_price as $key=>$price) {
$total[] = $price * $office_quantity[$key];
}
您只需要循环一个数组,并使用相同键的第二个数组中的值,您将获得正确的结果。
答案 2 :(得分:1)
使用阵列贴图功能它将起作用
$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);
答案 3 :(得分:1)
$ total_in_array = array_map(function($ x,$ y){return $ x * $ y;},$ office_price,$ office_quantity); //这将返回整数数组
$ total = array_sum($ total_in_array); //这将返回总数
答案 4 :(得分:0)
使用此
$total = array();
for($i=0;$i<count($office_price);$i++){
$total[] = $office_price[$i] * $office_quantity[$i];
}
答案 5 :(得分:0)
要将两个数组相乘,必须按元素进行:不涉及嵌套循环。例如,如果您想获得$total[2]
,则其值为$office_price[2] * $office_quantity[2]
。因此,一个foreach循环。要循环键,请使用... as $key => $price
。
$office_price = array(10, 100, 1000);
$office_quantity = array(1, 2, 3);
$total = array();
foreach($office_price as $key => $price){
$total[$key] = $price * $office_quantity[$key];
}
var_dump($total);
// array(3) { [0]=> int(10) [1]=> int(200) [2]=> int(3000) }
答案 6 :(得分:0)
$a= array (2,2);
$b= array(8000,1234);
$total = array();
for ($i=0;$i<count($a);$i++) {
$total[] = $a[$i] * $b[$i];
}
答案 7 :(得分:0)
function a($a, $b)
{
$r = [];
for($i = 0; $i < (count($a)); $i ++)
{
$r[] = $a[$i] * $b[$i];
}
return $r;
}