如何使用函数求和90个以上的数组?

时间:2019-03-27 20:37:13

标签: php

我想总结几个数组。我有一个脚本,可以动态创建没有名称的数组。下面是一个例子。在我的脚本中,我有90多个数组。我想总结一下。该数组中的所有键都是用户ID,因此我只希望键的总和。怎么做?问候

Array 
( 
[1] => 1 
[2] => 1 
[3] => 1 
) 
Array 
( 
[1] => 1 
[2] => 1 
) 
Array 
( 
[1] => 1 
)

我只想获得一个数组结果,如:

Array 
( 
[1] => 3 
[2] => 2
[3] => 1
)

2 个答案:

答案 0 :(得分:0)

将所有阵列添加到一个阵列中。

$all_arrays[] =Array 
( 
[1] => 1 ,
[2] => 1, 
[3] => 1 
); 

$all_arrays[] = Array 
( 
[1] => 1, 
[2] => 1 
) ;

$all_arrays[] = Array 
( 
[1] => 1 
);

 $results = [];
foreach($all_arrays as $arr){
   foreach($arr as $user_id=>$value){
       if(in_array($user_id,$results)){
           $results[$user_id] = $results[$user_id] + $value;
       }else{
            $results[$user_id] = $value;
       }
   }
}

答案 1 :(得分:0)

您需要在array_merge中指定所有数组:

$result = array_count_values(array_keys(array_merge($array1, $array2, $array3)));

如果您可以将数组动态添加到另一个$main_array,例如:

Array
(
    [0] => Array
        (
            [1] => 1
            [2] => 1
            [3] => 1
        )

    [1] => Array
        (
            [1] => 1
            [2] => 1
        )

    [2] => Array
        (
            [1] => 1
        )

)

那会容易得多:

$result = array_count_values(array_keys(array_merge(...$main_array)));