добавить все значения с соответствующим ключом в многомерный массив json - PullRequest
0 голосов
/ 21 мая 2019

Я работаю над сценарием php, где у меня есть массив json api, который выглядит примерно так -

[body] => stdClass Object
        (
            [api] => stdClass Object
                (
                    [status] => 200
                    [message] => GET stat....
                    [results] => 379
                    [filters] => Array
                        (
                            [0] => gameId
                            [1] => playerId
                        )

                    [statistics] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [gameId] => 17
                                    [totReb] => 7
                                    [assists] => 5
                                    [pFouls] => 4
                                    [steals] => 3
                                    [turnovers] => 2
                                    [blocks] => 0
                                    [plusMinus] => 9
                                    [playerId] => 265
                                )

                            [1] => stdClass Object
                                (
                                    [gameId] => 24
                                    [teamId] => 7
                                    [totReb] => 
                                    [assists] => 
                                    [pFouls] => 
                                    [steals] => 
                                    [turnovers] => 
                                    [blocks] => 
                                    [plusMinus] => 
                                    [playerId] => 265
                                )

И я пытаюсь получить значения для каждого объекта, чтобы затем вывести итоговое значение, поэтому для каждого [?] => StdClass Object он получит указанный ключ и подсчитает значение.

Как добавить все значения одним ключом?

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Сначала получите массив статистики (тот, который вы хотите зациклить и суммировать).Затем используйте array_column для извлечения только определенного ключа, а затем array_sum для его суммирования.

Это псевдо, но должно дать вам идею:

$arr = $obj->body->api->statistics;
$keyToSum = "steals";
$totalSteals = array_sum(array_column($arr, $keyToSum));

Ссылка: массив-колонна , массив-сумма

0 голосов
/ 21 мая 2019

У меня есть одна пользовательская функция, которая рекурсивно выбирает данные столбца, например array_column .

function array_column_recursive(array $haystack, $needle) {
    $found = [];
    array_walk_recursive($haystack, function($value, $key) use (&$found, $needle) {
        if ($key == $needle)
            $found[] = $value;
    });
    return $found;
}
echo array_sum(array_column_recursive($arr, 'steals'));

Источник ссылка .

...