后端开发|php教程
php
后端开发-php教程
个人引导源码,ubuntu上编译vlc,tomcat和域名的关系,多久学会爬虫,PHP外派能转正吗,盖州seolzw
$arr = array( array( imp => 1000, clk => 100, date => 0601 ), array( imp => 1002, clk => 102, date => 0602 ), array( imp => 1003, clk => 103, date => 0601 ));
求这个数组里相同日期的曝光总和、点击总和,用最简洁的代码表示出来
imp 曝光
clk 点击
date 日期
有赞后台模板源码,vscode 删除所有插件,ubuntu apk编辑,tomcat 进程自启动,eclipse 爬虫,php json封装,衡阳搜狗seo优化排名,常用网站首页代码,html表格模板 套用lzw
校园学工信息系统 源码,ubuntu怎么按软件,增加tomcat内存注册表,天眼查爬虫json,红谷滩新区php培训机构,石添seolzw
回复内容:
$arr = array( array( imp => 1000, clk => 100, date => 0601 ), array( imp => 1002, clk => 102, date => 0602 ), array( imp => 1003, clk => 103, date => 0601 ));
求这个数组里相同日期的曝光总和、点击总和,用最简洁的代码表示出来
imp 曝光
clk 点击
date 日期
php
$a=array();foreach($arr as $v){ $a[$v[date]][clk]+=$v[clk]; $a[$v[date]][imp]+=$v[imp];}print_r($a);
php
$res=[];foreach ($arr as $key => $value) { $res[$value[date]] =array(imp =>isset($res[$value[date]]) ? $res[$value[date]][imp]+$value[imp] : $value[imp],clk =>isset($res[$value[date]]) ? $res[$value[date]][clk]+$value[clk] : $value[clk],date =>$value[date] );}print_r(array_values($res));Array( [0] => Array ( [imp] => [clk] => 203 [date] => 0601 ) [1] => Array ( [imp] => 1002 [clk] => 102 [date] => 0602 ))
$tmp = array();foreach($arr as $k => $v) { $tmp[$k] = $v[date];}$tmp = array_unique($tmp);/* 去重后得Array( [0] => 0601 [1] => 0602)*/$tmp2 = array();foreach($tmp as $k => $v) { $tmp2[$v][imp] = 0; $tmp2[$v][clk] = 0;}/* 初始化得Array( [0601] => Array ( [imp] => 0 [clk] => 0 ) [0602] => Array ( [imp] => 0 [clk] => 0 ))*/foreach($tmp as $k => $v) { foreach($arr as $k2 => $v2) { if($v == $v2[date]) { $tmp2[$v][imp] += $v2[imp]; $tmp2[$v][clk] += $v2[clk]; } }}print_r($tmp2);/* 求和得Array( [0601] => Array ( [imp] => [clk] => 203 ) [0602] => Array ( [imp] => 1002 [clk] => 102 ))*/
来个reduce版本
1000, clk => 100, date => 0601 ), array( imp => 1002, clk => 102, date => 0602 ), array( imp => 1003, clk => 103, date => 0601 ));$result = array_reduce($arr, function($left, $right) { if(isset($right[imp])) $left[imp] += $right[imp]; if(isset($right[clk])) $left[clk] += $right[clk]; return $left;}, [ imp => 0, clk => 0]);print_r($result);
/58v94
专业问题。。学习了