$arr = array( - array('id'=>1,'cid' => 1, 'country' => '中国','province'=>'湖南'),
- array('id'=>2,'cid' => 1, 'country' => '中国','province'=>'湖南'),
- array('id'=>3,'cid' => 3, 'country' => '日本','province'=>'名古屋'),
- array('id'=>4,'cid' => 3, 'country' => '日本','province'=>'东京'),
- array('id'=>5,'cid' => 1, 'country' => '中国','province'=>'北京'),
- array('id'=>6,'cid' => 1, 'country' => '中国','province'=>'山东'),
- array('id'=>7,'cid' => 1, 'country' => '中国','province'=>'山东'),
- array('id'=>8,'cid' => 2, 'country' => '美国','province'=>'安大略'),
- array('id'=>9,'cid' => 2, 'country' => '美国','province'=>'安大略'),
- array('id'=>10,'cid' => 3, 'country' => '日本','province'=>'名古屋'),
- );
//参考答案: - /*
- 对数据的操作基本都是对数组中数据进行重新构造,学会如何构造数组的结构也就掌握了数据的使用方法。这道题目首页需要构造最后要输出的数组结构,这个数组结构可以是最终的,也可以是间接的。下面就是一种数组构造的方式:
- $ary =array(
- '中国'=>array('湖南'=>2,'山东'=>2,'北京'=>1),
- '日本'=>array('名古屋'=>2,'东京'=>1),
- '美国'=>array(),
- );
- */
$data = array(); - foreach($arr as $k=>$v){
- @$data[$v['country']][$v['province']] +=1; //决该题目的重点,多多体会下。
- }
- //数据最终的结构
- echo '国家:',count($data),'个
'; - foreach($data as $k=>$v){
- echo ' ',$k,':',array_sum($v),'次';
- echo ' 省份:',count($v),'个
'; - foreach($v as $kk=>$vv){
- echo ' ',$kk,':',$vv,'次
'; - }
} - ?>
输出结果:
国家:3个
中国:5次 省份:3个
湖南:2次
北京:1次
山东:2次
日本:3次 省份:2个
名古屋:2次
东京:1次
美国:2次 省份:1个
安大略:2次
有兴趣的朋友,好好体味下上面代码中数组的应用技巧,好好理解这句:
- foreach($arr as $k=>$v){
- @$data[$v['country']][$v['province']] +=1; //决该题目的重点,多多体会下。
- }
-
掌握下php 数组的实用技巧。 |