算法积累之处理数组数据
2023-09-27 14:24:31 时间
原数据
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
相关文章
- 面试Java后端却问我时间轮算法,面试官没想到我看过Dubbo源码!
- 最近邻与K近邻算法思想
- C++常用算法(六):集合【set_intersection:求两个set集合的交集】【set_union:求两个set集合的并集】【set_difference:求两个set集合的差集】
- C++类实现三维数组算法
- C语言:复制线性链表(递归)算法
- KMP算法-之next数组-详解
- A.机器学习入门算法(五):基于企鹅数据集的决策树分类预测
- php 把一个数组分成有n个元素的二维数组的算法
- 算法学习之数组和字符串
- 散列算法与散列码
- C语言 排序算法总结
- 算法总结----数组弄巧
- 基于鲸鱼算法改进支持向量机SVM的多分类研究,woa-svm
- LeetCode_贪心算法_中等_1775.通过最少操作次数使数组的和相等
- LeetCode_前缀树_贪心算法_中等_421.数组中两个数的最大异或值
- LeetCode_洗牌算法_中等_384.打乱数组
- 【C语言】算法学习·跳表
- JavaScript系列——数组元素左右移动N位算法实现
- js--算法-数组定序合并
- 【笔记】JavaScript版数据结构与算法——数据结构之“栈”(682. 棒球比赛)
- 【笔记】JavaScript版数据结构与算法——基础算法之“排序类”(922. 按奇偶排序数组 II)
- 算法:链表和数组哪个实现队列更快
- 2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛)L. 看错题
- leetcode算法:Island Perimeter
- 《算法零基础100讲》第14讲:最小公倍数