• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

多维数组中相同元素相加问题

php 搞代码 4年前 (2022-01-23) 20次浏览 已收录 0个评论
文章目录[隐藏]

首次发帖,请假高手
我从redis中取出五维数组需要处理相加,如下

$a = array(			0 => array(			0=> array(							"<p style="color:transparent">。本文来源gao!%daima.com搞$代*!码网1</p><cite>搞代gaodaima码</cite>date" => "201201",				"area"=> array(					12 => array(						click => "3",						traffic => "30"					)					)			),				1=> array(							"date" => "201202",				"area"=> array(					12 => array(						click => "8",						traffic => "40"					),					8=> array(						click => "5",						traffic => "50"					)				)			)						),		1 => array(					0=> array(							"date" => "201201",				"area"=> array(					12 => array(						click => "9",						traffic => "20"					),					8=> array(						click => "6",						traffic => "60"					)				)				),						1=> array(							"date" => "201202",				"area" => NULL			)		),			);

希望数据处理后,相同date前提下,area里相同的key所对应的click和traffic值相加,即0和1这两个大数组,date为201001的,area中12所对应的click和traffic处理后应该是12和50,8对应的是6和60,其他类推,求遍历或其他能处理成功的方法,感激不尽~!

回复讨论(解决方案)

最后结果是怎么样的? 贴一下。

结果如下,感谢关注

$a = array(             0 => array(             0=> array(                             "date" => "201201",                "area"=> array(                    12 => array(                        click => "12",                        traffic => "50"                    ) ,					8=> array(                        click => "6",                        traffic => "60"                    )                   )            ),                 1=> array(                             "date" => "201202",                "area"=> array(                    12 => array(                        click => "8",                        traffic => "40"                    ),                    8=> array(                        click => "5",                        traffic => "50"                    )                )            )                         )              );

$t = array();foreach ($a as $k=>$v){	foreach ($v as $k1=>$v1)	{		$t[0][$k1]['date'] = $v1['date'];		foreach ($v1['area'] as $k2=>$v2)		{			$t[0][$k1]['area'][$k2]['click'] += $v2['click'];			$t[0][$k1]['area'][$k2]['traffic'] += $v2['traffic'];		}	}}echo "<pre class="prettyprint linenums">";print_r($t);echo "<pre class="prettyprint linenums">";

结果如下:

Array(    [0] => Array        (            [0] => Array                (                    [date] => 201201                    [area] => Array                        (                            [12] => Array                                (                                    [click] => 12                                    [traffic] => 50                                )                            [8] => Array                                (                                    [click] => 6                                    [traffic] => 60                                )                        )                )            [1] => Array                (                    [date] => 201202                    [area] => Array                        (                            [12] => Array                                (                                    [click] => 8                                    [traffic] => 40                                )                            [8] => Array                                (                                    [click] => 5                                    [traffic] => 50                                )                        )                )        ))

感谢四楼正解


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:多维数组中相同元素相加问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址