解决方案 »
- php的浏览器地址中没有.PHP
- 怎样理解DISCUZ代码?
- php 框架
- php 写入 mssql 2005 中文都是乱码 ,但是写入到mysql就正常,高手给个解决办法呀?
- php表单如何传递0值
- 再发个正则
- MYSQL长短连接什么情况下使用?
- 请问使用PHP编程的网站文件怎么包含不同目录下的文件?
- 急!!!我只有最后的25分了!!! 在线等!!!!!!!!!!!!!!
- 怎样检查文件大小是否在php.ini中设置允许范围之内?
- XMLHttpRequest.open('post', url, true); 跨域拒绝访问怎么解决
- Missing argument 1 for CController::__construct()
我们知道,PHP的数组其实支持哈希(键值对)功能,就是说它的下标不一定是0、1、2~N这样连续的,而是可以
$arr['apple'] = 'red';
$arr['banana'] = 'yellow';
或者
$arr[2004] = 57;
$arr[2014] = 196;
这样。
基于这样一个语言能力的支持,我们要统计不同的数字的出现次数,只要创建一个数组,并在这个数组中放30个元素,下标分别为1~30,分别用于记录1~30中每个数字的出现次数就行了。
下面我写一个具体的代码。
==================================================
// 用你的例子中的数据作为测试数据
$data = array ('10,20,5,6,7,9,12,15,19,15', '10,20,7,3,5,19,25,30,4,9');
// 创建计数器数组,里面放30个元素,并且默认每个元素的值都是0
$counters = array();
for ($i = 1; $i <=30; $i ++) {
$counters[$i] = 0;
}// 开始计数
foreach ($data as $str) {
// 将逗号分隔的字符串拆为一个整数数组
$numbers = explode(',', $str);
// 循环此数字数组中的每一个元素以计数
foreach ($numbers as $num) {
// 计数,其实很简单了,把计数器数组中的30个元素中对应的元素的值加一即可
$counters[$num] ++;
}
}
// 打印结果看看
print_r($counters);
$t = explode(',', join(',', $a));
$r = array_count_values($t);
ksort($r);
print_r($r);Array
(
[3] => 1
[4] => 1
[5] => 2
[6] => 1
[7] => 2
[9] => 2
[10] => 2
[12] => 1
[15] => 2
[19] => 2
[20] => 2
[25] => 1
[30] => 1
)
你好 大虾可能我表达的意思有点不清楚 主要不是累加相同的个数而是累加数量 比如 第一组10,20,5,4,7,9,6,15,19,15 第二组 10,20,7,3,5,19,25,30,4,9
数据库
id name count
1 xxx 0
2 xxx 0
3 xxx 0
4 xxx 8
5 xxx 10
6 xxx 6
7 xxx 7
8 xxx 0
9 xxx 18
10 xxx 20
数据库
id name count
1 xxx 0
2 xxx 0
3 xxx 0
4 xxx 8
5 xxx 10
6 xxx 6
7 xxx 7
8 xxx 0
9 xxx 18
10 xxx 20
数据库
id name count
1 xxx 0
2 xxx 0
3 xxx 0
4 xxx 8
5 xxx 10
6 xxx 6
7 xxx 7
8 xxx 0
9 xxx 18
10 xxx 20
.
.
.
.
.30 xxx xxx