我想对自定义函数中的值求和,其中接收的参数/参数是另一个文件中foreach循环中的一个变量。
以下是代码:
// $value is the looped variable from another function
function custom_function($value) {
// simple logic
$var = [];
$var += $value;
print_r($var);
// using array logic
$array = [];
$array[] = $value;
print_r($array);
}
问题是,使用任何print_r
,我得到的输出为:
Array
(
[0] => 100
)
Array
(
[0] => 200
)
我需要的是300,即100+200的总和——我怀疑$value
是循环变量的原因。
您可以使用静态变量来维护函数调用之间的总和:
function custom_function($value) {
static $var = 0;
$var += $value;
echo "$varn";
}
custom_function(100);
custom_function(200);
输出:
100
300
3v4l.org 上的演示
$a = array('10','20','30');
$result = array();
$temp = 0;
foreach($a as $v)
{
$temp = $v+$temp;
array_push($result,$temp);
}
echo end($result);
echo '<br>';
print_r($result);
我认为$a
是一个传递值的数组。如果你不想改变太多的逻辑,试着这样做,只需创建2个临时变量
您可以使用array_sum来计算数组值的总和
function custom_function($value) {
// simple logic
$var = [];
$var += $value;
print_r($var);
print_r(array_sum($var));
}
$array = array('100','200');
$res= array(); //declare a new array
foreach($array as $val)
{
array_push($res,$val); // push each element to newly created array
}
custom_function($res); //call custom function to calculate the sum of array elements