我有以下数组作为$ 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
)
提前致谢!
答案 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));