数组归类问题

lxiangcn 2010-06-10 04:33:03
array(

array(100013,100,ad),

array(100013,100,ad),

array(100013,100,site),

array(100013,100,site),


array(id,fee,type),
id
fee 费用
type 类型

现在要根据id 和type 分组找出fee之和。简单说就是根据这个2个分组,类似sql里面的group by 那样。

然后上面的数据,我希望得到 (100013,200,ad)和(100013,200,site) 这个2个数据。
...全文
93 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tbraz 2010-06-10
  • 打赏
  • 举报
回复
学习了。。
Dleno 2010-06-10
  • 打赏
  • 举报
回复
应该是:

SELECT id,
TYPE , sum( fee ) fee
FROM sss
GROUP BY id,
TYPE
lazysmile 2010-06-10
  • 打赏
  • 举报
回复
遍历是少不了的了,比较简单的方法

$result = array();
foreach($arr as $row)
{
$key = $row[0]."|".$row[2];
if(isset($result[$key]))
{
$result[$key] += $row[1];
}
else
{
$result[$key] = $row[1];
}
}
print_r($result);

格式稍微处理下就可以
kyzy_yy_pm 2010-06-10
  • 打赏
  • 举报
回复
整错提议了,谅解,呵呵

$arr = array(
array(100013, 100, 'ad'),
array(100013, 100, 'ad'),
array(100013, 100, 'site'),
array(100013, 100, 'site')
);

$array = array();
foreach($arr as $key => $value){
if(!isset($array[$value[2]])){
$array[$value[2]] = $value;
}else{
$array[$value[2]][1] += $value[1];
}
}

这个可以吧?
kyzy_yy_pm 2010-06-10
  • 打赏
  • 举报
回复
select id, fee, type, sum(fee) fee from table grounp by type
amani11 2010-06-10
  • 打赏
  • 举报
回复
为什么不自己写个循环呢,也不复杂啊,直接的函数应该没有

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧