本帖最后由 haoryou123 于 2014-08-26 17:29:52 编辑

解决方案 »

  1.   

    这种类似的问题用PHP自带的数组作为基础数据结构就可以统计了。
    我们知道,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);
      

  2.   

    $a = array ('10,20,5,6,7,9,12,15,19,15', '10,20,7,3,5,19,25,30,4,9');
    $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
    )
      

  3.   


    你好  大虾可能我表达的意思有点不清楚 主要不是累加相同的个数而是累加数量 比如  第一组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
      

  4.   

    你好  大虾可能我表达的意思有点不清楚 主要不是累加相同的个数而是累加数量 比如  第一组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
      

  5.   

    你好  大虾可能我表达的意思有点不清楚 主要不是累加相同的个数而是累加数量 比如  第一组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
    .
    .
    .
    .
    .30               xxx                xxx