数数组,对相同值求和 php

num. Array, Sum same values php

我有这个数组(更长-只有一部分)

  [366] => Array
    (
        [0] => 8
        [1] => 7
        [2] => 8
        [3] => 9
        [4] => 8
    )

[367] => Array
    (
        [0] => 8
        [1] => 9
        [2] => 9
        [3] => 10
        [4] => 10
        [5] => 9
        [6] => 8
        [7] => 9
        [8] => 10
        [9] => 10
        [10] => 11
        [11] => 10
        [12] => 11
        [13] => 11
        [14] => 10
        [15] => 9
        [16] => 10
        [17] => 8
        [18] => 10
    )

钥匙必须持有(有一个id)。我想对每个值求和(在此示例中,值是几代人)。所以8代算3次366

预计 ID 为 366:7 - 1x、8 - 3x、9 - 1x 或

    [366] => Array
   (
    [7] => 1
    [8] => 3
    [9] => 1
   )

  [367] => Array
  (
    [8] => 3
    [9] => 5
    [10] => 8
    [11] => 3
   )

欢迎和赞赏每一个建议!

我总是用数字键或 foreach 停止...我试过的代码之一:

$outdams = array(); 
foreach ($dams as $key => $value) {
    foreach ($value as $key2 => $value2) {
        $index = $value2;
        if (array_key_exists($index, $outdams)) {
            $outdams[$index]++;
        } else {
            $outdams[$index] = 1;
        }
    }
}

检查此代码

<?php
$data = array(366=>array(8,7,8,8,9),
              367=>array(8,9,13,14,17,14)); 
echo "<pre>"; print_r($data);

$response = array(); 
foreach ($data as $outerkey => $outerData){
    foreach ($outerData as $innerkey => $innerData){
        //echo "<pre>"; print_r($innerData);
        if(array_key_exists($innerData, $response[$outerkey])){
            $response[$outerkey][$innerData] ++;
        }else{
            $response[$outerkey][$innerData] = 1;
        }
    }   
}
echo "<pre>"; print_r($response); 

?>