求PHP数组中的分组算法

天南海北 发布于 2012/07/31 10:19
阅读 2K+
收藏 0
PHP
$arr = array(
    array('countyid' => 1, 'county' => '中国','province'=>'湖南'),
    array('countyid' => 1, 'county' => '中国','province'=>'湖南'),
    array('countyid' => 3, 'county' => '日本','province'=>'名古屋'),
    array('countyid' => 3, 'county' => '日本','province'=>'东京'),
    array('countyid' => 1, 'county' => '中国','province'=>'北京'),
    array('countyid' => 1, 'county' => '中国','province'=>'山东'),
    array('countyid' => 1, 'county' => '中国','province'=>'山东'),
    array('countyid' => 2, 'county' => '美国','province'=>'安大略'),
    array('countyid' => 2, 'county' => '美国','province'=>'安大略'),
    array('countyid' => 3, 'county' => '日本','province'=>'名古屋'),

);

 

上面是一个PHP数组,请问:

1,按county分组,得到国家出现次数

2,按county,province分组,得到国家和省份一起出现的次数

谢谢!

加载中
2
酒逍遥
酒逍遥
		$arr = array( 
			array('countyid' => 1, 'county' => '中国','province'=>'湖南'), 
			array('countyid' => 1, 'county' => '中国','province'=>'湖南'), 
			array('countyid' => 3, 'county' => '日本','province'=>'名古屋'), 
			array('countyid' => 3, 'county' => '日本','province'=>'东京'), 
			array('countyid' => 1, 'county' => '中国','province'=>'北京'), 
			array('countyid' => 1, 'county' => '中国','province'=>'山东'), 
			array('countyid' => 1, 'county' => '中国','province'=>'山东'), 
			array('countyid' => 2, 'county' => '美国','province'=>'安大略'), 
			array('countyid' => 2, 'county' => '美国','province'=>'安大略'), 
			array('countyid' => 3, 'county' => '日本','province'=>'名古屋'), 
		);	
		foreach($arr as $v){
			$c[$v['county']]++;
			$cp[$v['county'].' '.$v['province']]++;
		}
		var_dump($c);
		var_dump($cp);
输出:
 
array(3) {
  ["中国"] => int(5)
  ["日本"] => int(3)
  ["美国"] => int(2)
}
array(6) {
  ["中国 湖南"] => int(2)
  ["日本 名古屋"] => int(2)
  ["日本 东京"] => int(1)
  ["中国 北京"] => int(1)
  ["中国 山东"] => int(2)
  ["美国 安大略"] => int(2)
}

c
czh05050
厉害厉害!我专门注册个账号来赞你下
帖子列表
帖子列表
非常nice
重庆格子网络科技
重庆格子网络科技
不错!
byhard
byhard
学习啦。
0
b
benbencat

建议你搞一个国家的二维数组,可能能更清晰一些。例如:

$province=array('name'=>'湖南', 'counts'=>2);

$county=array('countyid' => 1, 'county' => '中国','province'=>$province);

0
天南海北
天南海北
$arr = array(
    array('ip' => '192.168.1.1', 'chl' => '1'),
    array('ip' => '192.168.1.1', 'chl' => '4'),
    array('ip' => '192.168.1.3', 'chl' => '4'),
    array('ip' => '192.168.1.4', 'chl' => '3'),
    array('ip' => '192.168.1.2', 'chl' => '2'),
    array('ip' => '192.168.1.2', 'chl' => '2'),
    array('ip' => '192.168.1.1', 'chl' => '2'),

);

 

ip为地址,chl为频道,

求访问各频道的人数(即IP)和次数

0
Marser_cn
Marser_cn
方法不错。。嘿嘿
返回顶部
顶部