php arrays in array sum value by specific key?

标签 php arrays

我有这个数组,我喜欢按新名称和总和对分数进行分组。我有一个输入数组,看起来像:

Array
(
    [0] => Array
        (
            [newname] => Horse
            [score] => 4
        )

    [1] => Array
        (
            [newname] => Horse
            [score] => 2
        )

    [2] => Array
        (
            [newname] => Snake
            [score] => 3
        )

    [3] => Array
        (
            [newname] => Dog
            [score] => 3
        )
)

我需要输出数组来对每个新名字的分数求和。所以这将是结果:

Array
(
    [0] => Array
        (
            [newname] => Horse
            [score] => 6
        )

    [1] => Array
        (
             [newname] => Snake
            [score] => 3
        )

    [2] => Array
        (
             [newname] => Dog
            [score] => 3
        )
)

为此我有以下 php

$newArray = array();
foreach ($arrayAnimals as $row){
    if(!isset($newArray[$row['newname']]['score'])){
        $newArray[$row['newname']]['score'] =0;
    }
    $newArray[$row['newname']]['score'] += $row['score'];
}

但它只显示分数?

最佳答案

你可以这样做

$newArray = array();
foreach ($arrayAnimals as $row){
    $animal = $row['newname'];
    if(!isset($newArray[$animal])){
        $newArray[$animal]['newname'] = $animal;
        $newArray[$animal]['score'] = 0;
    }
    $newArray[$animal]['score'] += $row['score'];
}
print_r(array_values($newArray));

关于php arrays in array sum value by specific key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164167/

相关文章:

php - yii2 session 错误

javascript - 如何在 JavaScript 对象中循环数组?

c - 错误 : lvalue required as left operand of assignment in a swap with pointers

javascript - 将多个数据库项目优化计算到一个配置中

javascript - 基于 wp 网站上按钮的 slider

PHP - Simpletest - 如何测试 "included"类

php - Ajax 找不到网址

java - 创建对象数组时出现 NullPointerException

Ruby:通过正则表达式过滤数组?

php - 如何在 laravel 的 Eloquent ORM 中编写内部连接?