Foreach 只重复数组的最后一个元素
Foreach only repeats last element of array
$amount = 2;
$array = array(3,6,12);
foreach($array as $a){
$total = $a*$amount;
}
仅最后一个元素的结果:
整数(24)整数(12)
结果必须是:
整数(6)
整数(12)
整数(24)
我想计算数组中所有元素的和,但只计算了最后一个元素。
如果您说要计算数组 $amount 的元素总和,则不需要。
您可以使用 array_reduce
您可以查看文档 here
function sumArray($carry, $item)
{
$carry += $item;
return $carry;
}
array_reduce($array, "sumArray");
如果你需要用 (6,12,24) 获取数组,你可以使用
function sumArray($item)
{
return $item*2;
}
array_map("sumArray",$array); //array(6,12,24)
如果这确实是您的代码,您应该会遇到很多未定义的错误。你说要求和,为什么要乘以$amount
?
您想这样做:
<?php
$array = array(3,6,12);
$total = 0;
foreach($array as $a){
$total += $a;
}
或者更简单:
只需使用 array_sum:
array_sum — Calculate the sum of values in an array
像这样:
<?php
$array = array(3,6,12);
echo array_sum($array);
遍历作为引用传递的数组的每个元素并在循环内更新,如下所示:
$amount = 2;
$array = array(3,6,12);
foreach($array as &$a){
$a = $a*$amount;
}
var_dump($array);
使用array_map:
function double($v)
{
return $v * 2;
}
$a=array(3, 6, 12);
$resArr = array_map("double" ,$a));
结果将是一个数组[6, 12, 24]
$amount = 2;
$array = array(3,6,12);
foreach($array as $a){
$total = $a*$amount;
}
仅最后一个元素的结果:
整数(24)整数(12)
结果必须是: 整数(6) 整数(12) 整数(24)
我想计算数组中所有元素的和,但只计算了最后一个元素。
如果您说要计算数组 $amount 的元素总和,则不需要。
您可以使用 array_reduce
您可以查看文档 here
function sumArray($carry, $item)
{
$carry += $item;
return $carry;
}
array_reduce($array, "sumArray");
如果你需要用 (6,12,24) 获取数组,你可以使用
function sumArray($item)
{
return $item*2;
}
array_map("sumArray",$array); //array(6,12,24)
如果这确实是您的代码,您应该会遇到很多未定义的错误。你说要求和,为什么要乘以$amount
?
您想这样做:
<?php
$array = array(3,6,12);
$total = 0;
foreach($array as $a){
$total += $a;
}
或者更简单: 只需使用 array_sum:
array_sum — Calculate the sum of values in an array
像这样:
<?php
$array = array(3,6,12);
echo array_sum($array);
遍历作为引用传递的数组的每个元素并在循环内更新,如下所示:
$amount = 2;
$array = array(3,6,12);
foreach($array as &$a){
$a = $a*$amount;
}
var_dump($array);
使用array_map:
function double($v)
{
return $v * 2;
}
$a=array(3, 6, 12);
$resArr = array_map("double" ,$a));
结果将是一个数组[6, 12, 24]