子数组中所有元素的求和 - PHP

时间:2011-10-16 04:56:59

标签: php multidimensional-array

我有以下数组作为$ main_array。想要总结子数组中的所有元素,如[0] => 6,[1] => 11,[2] => 15

Array 
( 
[0] => Array 
       ( 
         [0] => 1 
         [1] => 2 
         [2] => 3 
       ) 
[1] => Array 
       ( 
         [0] => 2 
         [1] => 4 
         [2] => 5 
       ) 
[2] => Array 
       ( 
         [0] => 8 
         [1] => 4 
         [2] => 3 
         ) 
)

尝试以下代码。

foreach ($main_array as $key => $value)
  $main_array[$key] = Array('1'=>array_sum($value));
print_r($main_array);

但我得到的数组结构是,

Array 
( 
    [0] => Array 
    ( 
        [1] => 6 
    ) 
    [1] => Array 
    ( 
        [1] => 11
    ) 
    [2] => Array 
    ( 
        [1] => 15 
    ) 
)

我期待数组结构如下。

Array 
( 
    [0] => 6

    [1] => 11

    [2] => 15

)

提前致谢!

3 个答案:

答案 0 :(得分:5)

当您调用Array函数时,您明确地创建了一个数组,因此您必须从Array('1'=>array_sum($value));中删除它

这就是你的代码应该是这样的

foreach ($main_array as $key => $value)
  $main_array[$key] = array_sum($value);

答案 1 :(得分:1)

试试这个:

  foreach ($main_array as $key => $value)
     $main_array[$key] = array_sum($value);

即,将总和直接放在顶级数组中。

答案 2 :(得分:0)

对输入数组中的每一行调用 channel = ctx.message.author.voice.channel if ctx.voice_client is not None: return await ctx.voice_client.move_to(channel) await channel.connect() array_sum() 使此操作富有表现力、简洁,并且不需要声明任何新变量。

代码:(Demo)

array_map()

输出:

$array = [
    [1, 2, 3],
    [2, 4, 5],
    [8, 4, 3],
];

var_export(array_map('array_sum', $array));