原数据

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

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/3796920.html,如需转载请自行联系原作者

算法积累之处理数组数据相关推荐

  1. java 奇偶数据排序算法,简单讲解奇偶排序算法及在Java数组中的实现

    简单讲解奇偶排序算法及在Java数组中的实现 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 [6 2 4 1 5 9] ...

  2. asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)

    数组基础 数组是最基础的数据结构,特点是O(1)时间读取任意下标元素,经常应用于排序(Sort).双指针(Two Pointers).二分查找(Binary Search).动态规划(DP)等算法.顺 ...

  3. 【视频课】深度学习入门必修,子欲学算法,必先搞数据!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  4. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  5. 【算法】几个数组拆分题的算法(动态规划,矩阵递归和同余问题)

    鸽了几个月,终于更了哈哈哈(确实本人懒癌晚期,往往就不更了) 这个学期虽然算是最鸽的一个学期,不过也有些东西,总共一学期做过的三次数组拆分问题感觉上已经够了一篇很不错的文章,其实就有的时候就懒得更了 ...

  6. 02_JavaScript数据结构与算法(二)数组

    JavaScript 数据结构与算法(二)数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构. 数组通常情况下用于存储一系列同一种数据类型的值. 但在 JavaScript 里 ...

  7. 算法时代七大主题,数据与模型将操控人类

    根据全球权威调查机构皮尤研究所发布的报告<算法时代>,千余专家中仅38%的人预测算法的积极影响将超过其负面影响. 算法是解决问题或完成任务的指示说明.配方是算法,数学公式也是算法.计算机代 ...

  8. 坐标轴刻度取值算法-基于魔数数组-源于echarts的y轴刻度计算需求

    数值型坐标轴刻度计算算法 前言 算法描述 上代码 代码运行效果 ts版本(2021/3/10补充) 结语 前言 因实习的公司是做大数据的,而我的工作刚好又是需要绘制一些数据图表的.绘制图表有许多现成的 ...

  9. 李彦宏说数据秒杀算法,BAT金融大数据如何运作?

    李彦宏说数据秒杀算法,BAT金融大数据如何运作? 李彦宏 大数据 算法 BAT 金融 深几度 | 2017-02-13 14:50 [数据猿导读] 新年开工,李彦宏的内部信就在朋友圈中引发了一波刷屏. ...

最新文章

  1. Ext结合DWR的关键代码(运行成功的DWRProxy)
  2. DCMTK:C ++字符串类OFString的测试程序
  3. 运营系统的前世今生(1)
  4. SpringMVC注解解析
  5. 将数据压缩到数据结构中
  6. Android SQLite (二) 基本用法
  7. linux c解析配置文件,linux中C的配置文件
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的酒店客房管理系统
  9. [python]No module named ‘bs4‘
  10. win2003超过最大连接数
  11. eoe·Android 开发门户 - android开发者的必备网站
  12. 如何将GridViewEX升级到UWP(Universal Windows Platform)平台
  13. 从Spice Model到模拟IC设计的心路历程
  14. win10未能连接网络连接到服务器,win10以太网无法连接网络解决办法
  15. Hustoj mdui Web界面修改
  16. Cortex-M3 (NXP LPC1788)之启动代码分析
  17. 怎么把计算机的网络设置弄成家庭,如何设置家庭Wi-Fi网络
  18. C++代码实现图片调色
  19. DNN与推荐两大门派,一念神魔,功不唐捐
  20. 几款常用的高质量web前端框架

热门文章

  1. RSA算法与DSA算法的区别
  2. [游戏开发-学习笔记]菜鸟慢慢飞(14)- ScrollView刷新
  3. Python面向对象基础一
  4. Python 第二篇:python字符串、列表和字典的基本操作方法
  5. PowerEdge服务器生命周期控制器:Lifecycle Controller
  6. (转)Android属性设置android:noHistory=true
  7. OC基础1:一些基本概念
  8. gridview不换行,高亮显示
  9. Netflix正在搞的混沌工程到底是什么?终于有人讲明白了
  10. 数据中台:不是产品,不是技术,到底是什么?(附完整PPT下载)