合并并通过在多个阵列组 [英] Merge and group by several arrays

查看:157
本文介绍了合并并通过在多个阵列组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要通过名称合并关联数组和组。说我有这样的3个数组:

I need to merge associative arrays and group by the name. Say I have such 3 arrays:

ARRAY1
    "/path/file.jpg"  =>  2, 
    "/path/file2.bmp" =>  1,
    "/file3.gif"      => 5,

ARRAY2
    "/path/file.jpg"  =>  1, 
    "/path/file2.bmp" =>  1,
    "/file3.gif"      => 0,

ARRAY3
    "/path/file.jpg"  =>  1, 
    "/path/file2.bmp" =>  1,

我需要通过文件路径为这些阵列合并成一个,并将它们组合,并有自己的价值总和的结果。是这样的:

I need to merge these arrays to one and group them by filepath and have result of sum of their values. Something like:

SELECT filename, SUM(val) FROM files
GROUP BY filename

但有多个输入数组。数组是短(约20元最大值)。每个阵列可能有不同的大小。

But with multiple input arrays. Arrays are short (around 20 elements max). Each array might have different size.

推荐答案

一种可能的方式

$rtn = array();
foreach ($array1 as $key=>$val)
{
  $rtn[$key]+=$val;
}

foreach ($array2 as $key=>$val)
{
  $rtn[$key]+=$val;
}

foreach ($array2 as $key=>$val)
{
  $rtn[$key]+=$val;
}

以上将分配文件名,SUM(VAL)作为关联数组 $ RTN

这篇关于合并并通过在多个阵列组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆