zoukankan      html  css  js  c++  java
  • 算法积累之处理数组数据

    原数据

    Array
    (
        [0] => Array
            (
                [award_cat] => 1
                [award_level] => 1
                [count] => 5
            )
    
        [1] => Array
            (
                [award_cat] => 2
                [award_level] => 1
                [count] => 11
            )
    
        [2] => Array
            (
                [award_cat] => 2
                [award_level] => 2
                [count] => 6
            )
    
        [3] => Array
            (
                [award_cat] => 2
                [award_level] => 3
                [count] => 7
            )
    
        [4] => Array
            (
                [award_cat] => 2
                [award_level] => 4
                [count] => 10
            )
    
        [5] => Array
            (
                [award_cat] => 2
                [award_level] => 5
                [count] => 10
            )
    
        [6] => Array
            (
                [award_cat] => 2
                [award_level] => 6
                [count] => 9
            )
    
        [7] => Array
            (
                [award_cat] => 2
                [award_level] => 7
                [count] => 7
            )
    
        [8] => Array
            (
                [award_cat] => 3
                [award_level] => 2
                [count] => 5
            )
    
        [9] => Array
            (
                [award_cat] => 4
                [award_level] => 3
                [count] => 5
            )
    
        [10] => Array
            (
                [award_cat] => 5
                [award_level] => 4
                [count] => 4
            )
    
        [11] => Array
            (
                [award_cat] => 6
                [award_level] => 6
                [count] => 6
            )
    
    )

    目标数据

    $outData = array(0=>array('name'=>'论文','data'=>'1,2,3,4,5,6,7'),1=>array('name'=>'优质课','data'=>'3,4,6,9,4,8,10'));

    思路:

    先对原数据进行一次简单处理,

    foreach ($aAwardMem as $k => $v) {
                $a[$v['award_cat']][$v['award_level']]=$v;
            }

    处理之后为,

    [1] => Array
            (
                [1] => Array
                    (
                        [award_cat] => 1
                        [award_level] => 1
                        [count] => 5
                    )
    
            )
    
        [2] => Array
            (
                [1] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 1
                        [count] => 11
                    )
    
                [2] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 2
                        [count] => 6
                    )
    
                [3] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 3
                        [count] => 7
                    )
    
                [4] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 4
                        [count] => 10
                    )
    
                [5] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 5
                        [count] => 10
                    )
    
                [6] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 6
                        [count] => 9
                    )
    
                [7] => Array
                    (
                        [award_cat] => 2
                        [award_level] => 7
                        [count] => 7
                    )
    
            )
    
        [3] => Array
            (
                [2] => Array
                    (
                        [award_cat] => 3
                        [award_level] => 2
                        [count] => 5
                    )
    
            )
    
        [4] => Array
            (
                [3] => Array
                    (
                        [award_cat] => 4
                        [award_level] => 3
                        [count] => 5
                    )
    
            )
    
        [5] => Array
            (
                [4] => Array
                    (
                        [award_cat] => 5
                        [award_level] => 4
                        [count] => 4
                    )
    
            )
    
        [6] => Array
            (
                [6] => Array
                    (
                        [award_cat] => 6
                        [award_level] => 6
                        [count] => 6
                    )
    
            )

    这样key值就有意义了。

    第一个key表示award_cat

    第二个表示award_level

    然后再对数据,进行字符串处理。

    foreach ($researchAwardCat as $i => $ival) {//论文
                $outData[$i-1]['name'] = $ival;
                $outstr = '';
                $count = 0;
                foreach ($researchAwardLevel as $j => $jval) {//国际、国家
                    if($count!=0){
                        $outstr.=',';
                    }
                    if(isset($a[$i][$j])){
                            $outstr .=$a[$i][$j]['count'];
                    }else{
                            $outstr .='0';
                    }
                    $count++;
                }
                $outData[$i-1]['data'] = $outstr;
            }

    这样就达到最终数据模型了。

    Array
    (
        [0] => Array
            (
                [name] => 论文
                [data] => 5,0,0,0,0,0,0
            )
    
        [1] => Array
            (
                [name] => 优质课
                [data] => 11,6,7,10,10,9,7
            )
    
        [2] => Array
            (
                [name] => 课件
                [data] => 0,5,0,0,0,0,0
            )
    
        [3] => Array
            (
                [name] => 教学设计
                [data] => 0,0,5,0,0,0,0
            )
    
        [4] => Array
            (
                [name] => 基本功赛
                [data] => 0,0,0,4,0,0,0
            )
    
        [5] => Array
            (
                [name] => 带生获奖
                [data] => 0,0,0,0,0,6,0
            )
    
    )

    就能看到统计图了,yeah

  • 相关阅读:
    C#中将dll汇入exe,并加壳
    很不错的在线格式转换网站
    Eclipse快捷键大全
    win7休眠的开启与关闭方法
    C#实现注册码
    Microsoft.CSharp.targets不存在解决方法
    数据库>SQL Server2005>第4季SQL从入门到提高>2SQL Server使用
    main函数名字写错,写成mian等等的错误提示
    CSS选择器
    斐波那契数的实现
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/3796920.html
Copyright © 2011-2022 走看看