我有一个像这样的多余阵列...
**请注意,该阵列具有右括号,未在此图像中显示。所以语法中没有问题。
我想在每个键中添加值(Openness,Conscientiousness),以便我有一个类似的数组:
Array{
[Openness]=> Array(
[0] => 16
)
[Conscientiousness]=>Array (
[0]=> 10
)
}
在查看现有问题后,当我尝试使用此代码时:
$sumArray = array();
foreach ($finalarr as $k=>$subArray) {
foreach ($subArray as $id=>$value) {
//$sumArray[$id]+=$value;
array_key_exists( $id, $sumArray ) ? $sumArray[$id] += $value : $sumArray[$id] = $value;
}
}
print_r($sumArray);
我明白了:
这不是我想要的。任何想法如何修复数组?
答案 0 :(得分:0)
您可以使用array_sum()
和一个循环执行此操作:
$sumArray = array();
foreach ($finalarr as $k => $subArray) {
$sumArray[$k] = array_sum($subArray);
}
如果你真的需要$sumArray
的元素是数组而不仅仅是总和,它就变成了:
$sumArray = array();
foreach ($finalarr as $k => $subArray) {
$sumArray[$k] = array(array_sum($subArray));
}
但我不确定你为什么会这么想。
答案 1 :(得分:0)
好的,正如评论中所建议的那样,我使用了array_sum并且它有效。我把foreach改为:
**删除了不必要的内循环
foreach ($finalarr as $k=>$subArray) {
$finalarr[$k]=array_sum($subArray);
}
它给了我输出:
Array{
[Openness]=> 16
[Conscientiousness]=> 10
}
感谢您的评论!!