在php编程中有关数组的一些用法技巧,通过一个例子来学习下相关的数组技巧知识

使用简单的方法,统计以下数据中国家数以及属于该国家的省份出现的次数。

完整代码
<?php
$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), '个<br>';
foreach ($data as $k => $v) {
    echo '&nbsp;&nbsp;&nbsp;&nbsp;', $k, ':', array_sum($v), '次';
    echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;省份:', count($v), '个<br>';
    foreach ($v as $kk => $vv) {
        echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $kk, ':', $vv, '次<br>';
    }
}
?>

输出结果

国家:3个
    中国:5次        省份:3个
       湖南:2次
       北京:1次
       山东:2次
    日本:3次        省份:2个
       名古屋:2次
       东京:1次
    美国:2次        省份:1个
       安大略:2次


相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!