Foreach只重复数组的最后一个元素

时间:2017-11-24 18:39:17

标签: php arrays foreach element

df = pd.DataFrame({ '1': ['Mon (07/08)','Sales', '2'],
                     '2': ['Mon (07/08)','Stock','3'],
                    '3': ['Mon (07/08)','Qty','4'],
                  '4': ['Tue (08/08)','Sales', '4'],
                     '5': ['Tue (08/08)','Stock','5'],
                    '6': ['Tue (08/08)','Qty','6']})

df

仅产生最后一个元素:
int(24)int(12)

结果必须是: INT(6) INT(12) INT(24)

我想计算数组中所有元素的总和,但只计算最后一个元素。

4 个答案:

答案 0 :(得分:2)

迭代作为引用传递的数组的每个元素并在循环内更新,如下所示:     

$amount = 2;
$array = array(3,6,12);
foreach($array as &$a){
    $a = $a*$amount;  
}

var_dump($array);

答案 1 :(得分:1)

如果你说你想要计算数组$ sum的元素是不必要的。

您可以使用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)

答案 2 :(得分:0)

如果这确实是你的代码,你应该得到很多未定义的错误。你说你想得到总和,那你为什么要乘以$amount

你想这样做:

<?php
$array = array(3,6,12);
$total = 0;
foreach($array as $a){
   $total += $a;  
}

甚至更容易: 只需使用array_sum

  

array_sum - 计算数组中值的总和

像这样:

<?php
$array = array(3,6,12);
echo array_sum($array);

答案 3 :(得分:0)

使用array_map:

function double($v)
{      
    return $v * 2;
}

$a=array(3, 6, 12);
$resArr = array_map("double" ,$a));

结果将是一个数组[6, 12, 24]