求救各位大神帮帮!
现在要做的就是,有一个调查问卷,然后要统计别人答题的情况,例如ABC分别多少人选择这样
第一个图是别人提交上来我数据库里面的内容,反序列化后,存在一个数组里面
第二个图是题目和选项
我不知道把数据这样分配在2个数组合不合适?
做统计的话,程序应该怎么写比较合适!
想了好几天。。。
这个在数据库里通过分组查询就可以了
没必要拿出来用 php 做
如果一定想要用 php 数组做,那么请贴出用 var_export 输出的测试数据
数据库中的表里面的问题的设置表格和别人提交上来的表格分别是这样的,不知道怎么下手,还有姓名,留言,电话等这些字段都是不统计的,,,想了好几天总是找不到连接点,,,
array (size=4)
0 =>
array (size=8)
0 =>
array (size=2)
'name' => string '姓名' (length=6)
'value' => string '123' (length=3)
1 =>
array (size=2)
'name' => string '留言内容' (length=12)
'value' => string '123' (length=3)
2 =>
array (size=2)
'name' => string '联系电话' (length=12)
'value' => string '9896' (length=4)
3 =>
array (size=2)
'name' => string '性别' (length=6)
'value' => string '女' (length=3)
4 =>
array (size=2)
'name' => string '接下来的时间,您是选择就业、创' (length=45)
'value' => string '就业' (length=6)
5 =>
array (size=2)
'name' => string '您的就业择业方向是?(多选)' (length=42)
'value' => string '
旅游交通民航业,
餐饮行业,
其他
' (length=49)
6 =>
array (size=2)
'name' => string '您对刚就业工资要求是?' (length=33)
'value' => string '2000-2500' (length=9)
7 =>
array (size=2)
'name' => string '您所学的专业是?(多选)' (length=36)
'value' => string '经管类,建工类,化工、医药类' (length=38)
1 =>
array (size=5)
0 =>
array (size=2)
'name' => string '昵称' (length=6)
'value' => string '哈哈哈' (length=9)
1 =>
array (size=2)
'name' => string '留言内容' (length=12)
'value' => string '嘿嘿' (length=6)
2 =>
array (size=2)
'name' => string '联系电话' (length=12)
'value' => string '111111111121' (length=12)
3 =>
array (size=2)
'name' => string '性别' (length=6)
'value' => string '男' (length=3)
4 =>
array (size=2)
'name' => string '你喜欢常去哪个网站你喜欢常去哪' (length=45)
'value' => string '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝
' (length=53)
2 =>
array (size=4)
0 =>
array (size=2)
'name' => string '昵称' (length=6)
'value' => string '人为财死鸟为食亡' (length=24)
1 =>
array (size=2)
'name' => string '留言内容' (length=12)
'value' => string '什么意思啊' (length=15)
2 =>
array (size=2)
'name' => string '联系电话' (length=12)
'value' => string '13088888888' (length=11)
3 =>
array (size=2)
'name' => string '性别' (length=6)
'value' => string '男' (length=3)
3 =>
array (size=4)
0 =>
array (size=2)
'name' => string '昵称' (length=6)
'value' => string '什么' (length=6)
1 =>
array (size=2)
'name' => string '留言内容' (length=12)
'value' => string '哈哈哈哈哈哈' (length=18)
2 =>
array (size=2)
'name' => string '联系电话' (length=12)
'value' => string '12345597744' (length=11)
3 =>
array (size=2)
'name' => string '性别' (length=6)
'value' => string '女' (length=3)
-------------------------------------
array (size=5)
'性别' =>
array (size=2)
0 => string '男' (length=3)
1 => string '女' (length=3)
'接下来的时间,您是选择就业、创业?' =>
array (size=3)
0 => string '就业' (length=6)
1 => string '创业' (length=6)
2 => string '升学读书' (length=12)
'您的就业择业方向是?(多选)' =>
array (size=9)
0 => string 'IT与通讯业' (length=14)
1 => string '金融、证券、保险业' (length=27)
2 => string '房地产业' (length=12)
3 => string '医药食品业' (length=15)
4 => string '旅游交通民航业' (length=21)
5 => string '政府机关' (length=12)
6 => string '餐饮行业' (length=12)
7 => string '自我创业' (length=12)
8 => string '其他' (length=6)
'您对刚就业工资要求是?' =>
array (size=4)
0 => string '1000-1500' (length=9)
1 => string '1500-2000' (length=9)
2 => string '2000-2500' (length=9)
3 => string '2500以上
' (length=13)
'您所学的专业是?(多选)' =>
array (size=8)
0 => string '经管类' (length=9)
1 => string '机械类' (length=9)
2 => string '建工类' (length=9)
3 => string '艺术类' (length=9)
4 => string '化工、医药类' (length=18)
5 => string '电子商务、信息、软件类' (length=33)
6 => string '文法类' (length=9)
7 => string '教育类' (length=9)
你这是 var_dump 的结果!需要改造后才可用
var_export 输出的是 php 代码格式,直接就可用
array ( 0 => array ( 0 => array ( 'name' => '姓名', 'value' => '123', ), 1 => array ( 'name' => '留言内容', 'value' => '123', ), 2 => array ( 'name' => '联系电话', 'value' => '9896', ), 3 => array ( 'name' => '性别', 'value' => '女', ), 4 => array ( 'name' => '接下来的时间,您是选择就业、创', 'value' => '就业', ), 5 => array ( 'name' => '您的就业择业方向是?(多选)', 'value' => ' 旅游交通民航业, 餐饮行业, 其他 ', ), 6 => array ( 'name' => '您对刚就业工资要求是?', 'value' => '2000-2500', ), 7 => array ( 'name' => '您所学的专业是?(多选)', 'value' => '经管类,建工类,化工、医药类', ), ), 1 => array ( 0 => array ( 'name' => '昵称', 'value' => '哈哈哈', ), 1 => array ( 'name' => '留言内容', 'value' => '嘿嘿', ), 2 => array ( 'name' => '联系电话', 'value' => '111111111121', ), 3 => array ( 'name' => '性别', 'value' => '男', ), 4 => array ( 'name' => '你喜欢常去哪个网站你喜欢常去哪', 'value' => '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝
', ), ), 2 => array ( 0 => array ( 'name' => '昵称', 'value' => '人为财死鸟为食亡', ), 1 => array ( 'name' => '留言内容', 'value' => '什么意思啊', ), 2 => array ( 'name' => '联系电话', 'value' => '13088888888', ), 3 => array ( 'name' => '性别', 'value' => '男', ), ), 3 => array ( 0 => array ( 'name' => '昵称', 'value' => '什么', ), 1 => array ( 'name' => '留言内容', 'value' => '哈哈哈哈哈哈', ), 2 => array ( 'name' => '联系电话', 'value' => '12345597744', ), 3 => array ( 'name' => '性别', 'value' => '女', ), ), )
----------------------------------------------------------
array ( '性别' => array ( 0 => '男', 1 => '女', ), '接下来的时间,您是选择就业、创业?' => array ( 0 => '就业', 1 => '创业', 2 => '升学读书', ), '您的就业择业方向是?(多选)' => array ( 0 => 'IT与通讯业', 1 => '金融、证券、保险业', 2 => '房地产业', 3 => '医药食品业', 4 => '旅游交通民航业', 5 => '政府机关', 6 => '餐饮行业', 7 => '自我创业', 8 => '其他', ), '您对刚就业工资要求是?' => array ( 0 => '1000-1500', 1 => '1500-2000', 2 => '2000-2500', 3 => '2500以上 ', ), '您所学的专业是?(多选)' => array ( 0 => '经管类', 1 => '机械类', 2 => '建工类', 3 => '艺术类', 4 => '化工、医药类', 5 => '电子商务、信息、软件类', 6 => '文法类', 7 => '教育类', ), )
--------
哈哈哈~没注意看,现在这种格式对了吗? 谢谢谢帮忙!!
$d = array ( '性别' => array ( 0 => '男', 1 => '女', ), '接下来的时间,您是选择就业、创业?' => array ( 0 => '就业', 1 => '创业', 2 => '升学读书', ), '您的就业择业方向是?(多选)' => array ( 0 => 'IT与通讯业', 1 => '金融、证券、保险业', 2 => '房地产业', 3 => '医药食品业', 4 => '旅游交通民航业', 5 => '政府机关', 6 => '餐饮行业', 7 => '自我创业', 8 => '其他', ), '您对刚就业工资要求是?' => array ( 0 => '1000-1500', 1 => '1500-2000', 2 => '2000-2500', 3 => '2500以上 ', ), '您所学的专业是?(多选)' => array ( 0 => '经管类', 1 => '机械类', 2 => '建工类', 3 => '艺术类', 4 => '化工、医药类', 5 => '电子商务、信息、软件类', 6 => '文法类', 7 => '教育类', ), );$a = array ( 0 => array ( 0 => array ( 'name' => '姓名', 'value' => '123', ), 1 => array ( 'name' => '留言内容', 'value' => '123', ), 2 => array ( 'name' => '联系电话', 'value' => '9896', ), 3 => array ( 'name' => '性别', 'value' => '女', ), 4 => array ( 'name' => '接下来的时间,您是选择就业、创', 'value' => '就业', ), 5 => array ( 'name' => '您的就业择业方向是?(多选)', 'value' => ' 旅游交通民航业, 餐饮行业, 其他 ', ), 6 => array ( 'name' => '您对刚就业工资要求是?', 'value' => '2000-2500', ), 7 => array ( 'name' => '您所学的专业是?(多选)', 'value' => '经管类,建工类,化工、医药类', ), ), 1 => array ( 0 => array ( 'name' => '昵称', 'value' => '哈哈哈', ), 1 => array ( 'name' => '留言内容', 'value' => '嘿嘿', ), 2 => array ( 'name' => '联系电话', 'value' => '111111111121', ), 3 => array ( 'name' => '性别', 'value' => '男', ), 4 => array ( 'name' => '你喜欢常去哪个网站你喜欢常去哪', 'value' => '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝', ), ), 2 => array ( 0 => array ( 'name' => '昵称', 'value' => '人为财死鸟为食亡', ), 1 => array ( 'name' => '留言内容', 'value' => '什么意思啊', ), 2 => array ( 'name' => '联系电话', 'value' => '13088888888', ), 3 => array ( 'name' => '性别', 'value' => '男', ), ), 3 => array ( 0 => array ( 'name' => '昵称', 'value' => '什么', ), 1 => array ( 'name' => '留言内容', 'value' => '哈哈哈哈哈哈', ), 2 => array ( 'name' => '联系电话', 'value' => '12345597744', ), 3 => array ( 'name' => '性别', 'value' => '女', ), ), );foreach($a as $item) { foreach($item as $v) if(isset($d[$v['name']])) @$res[$v['name']][$v['value']]++;}print_r($res);
Array( [性别] => Array ( [女] => 2 [男] => 2 ) [您的就业择业方向是?(多选)] => Array ( [ 旅游交通民航业, 餐饮行业, 其他 ] => 1 ) [您对刚就业工资要求是?] => Array ( [2000-2500] => 1 ) [您所学的专业是?(多选)] => Array ( [经管类,建工类,化工、医药类] => 1 ))
你好 我能问一下 @$res[$v['name']][$v['value']]++;
这个前面为什么加个@ 吗
$d = array ( '性别' => array ( 0 => '男', 1 => '女', ), '接下来的时间,您是选择就业、创业?' => array ( 0 => '就业', 1 => '创业', 2 => '升学读书', ), '您的就业择业方向是?(多选)' => array ( 0 => 'IT与通讯业', 1 => '金融、证券、保险业', 2 => '房地产业', 3 => '医药食品业', 4 => '旅游交通民航业', 5 => '政府机关', 6 => '餐饮行业', 7 => '自我创业', 8 => '其他', ), '您对刚就业工资要求是?' => array ( 0 => '1000-1500', 1 => '1500-2000', 2 => '2000-2500', 3 => '2500以上 ', ), '您所学的专业是?(多选)' => array ( 0 => '经管类', 1 => '机械类', 2 => '建工类', 3 => '艺术类', 4 => '化工、医药类', 5 => '电子商务、信息、软件类', 6 => '文法类', 7 => '教育类', ), );$a = array ( 0 => array ( 0 => array ( 'name' => '姓名', 'value' => '123', ), 1 => array ( 'name' => '留言内容', 'value' => '123', ), 2 => array ( 'name' => '联系电话', 'value' => '9896', ), 3 => array ( 'name' => '性别', 'value' => '女', ), 4 => array ( 'name' => '接下来的时间,您是选择就业、创', 'value' => '就业', ), 5 => array ( 'name' => '您的就业择业方向是?(多选)', 'value' => ' 旅游交通民航业, 餐饮行业, 其他 ', ), 6 => array ( 'name' => '您对刚就业工资要求是?', 'value' => '2000-2500', ), 7 => array ( 'name' => '您所学的专业是?(多选)', 'value' => '经管类,建工类,化工、医药类', ), ), 1 => array ( 0 => array ( 'name' => '昵称', 'value' => '哈哈哈', ), 1 => array ( 'name' => '留言内容', 'value' => '嘿嘿', ), 2 => array ( 'name' => '联系电话', 'value' => '111111111121', ), 3 => array ( 'name' => '性别', 'value' => '男', ), 4 => array ( 'name' => '你喜欢常去哪个网站你喜欢常去哪', 'value' => '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝', ), ), 2 => array ( 0 => array ( 'name' => '昵称', 'value' => '人为财死鸟为食亡', ), 1 => array ( 'name' => '留言内容', 'value' => '什么意思啊', ), 2 => array ( 'name' => '联系电话', 'value' => '13088888888', ), 3 => array ( 'name' => '性别', 'value' => '男', ), ), 3 => array ( 0 => array ( 'name' => '昵称', 'value' => '什么', ), 1 => array ( 'name' => '留言内容', 'value' => '哈哈哈哈哈哈', ), 2 => array ( 'name' => '联系电话', 'value' => '12345597744', ), 3 => array ( 'name' => '性别', 'value' => '女', ), ), );foreach($a as $item) { foreach($item as $v) if(isset($d[$v['name']])) @$res[$v['name']][$v['value']]++;}print_r($res);
Array( [性别] => Array ( [女] => 2 [男] => 2 ) [您的就业择业方向是?(多选)] => Array ( [ 旅游交通民航业, 餐饮行业, 其他 ] => 1 ) [您对刚就业工资要求是?] => Array ( [2000-2500] => 1 ) [您所学的专业是?(多选)] => Array ( [经管类,建工类,化工、医药类] => 1 ))
这就是你的问题了
比如 经管类,建工类,化工、医药类 本来是分属于 您所学的专业是?(多选) 的 经管类、建工类、化工、医药类 子项的,但你把他们联结成了一个串,那就变成一项了。你的再切割成数组,分别统计
foreach($a as $item) { foreach($item as $v) if(isset($d[$v['name']])) { foreach(explode(',', [$v['value']]) as $sub) @$res[$v['name']][$sub]++; }}
foreach($a as $item) { foreach($item as $v) if(isset($d[$v['name']])) { foreach(explode(',', [$v['value']]) as $sub) @$res[$v['name']][$sub]++; }}
屏蔽掉 使用了未赋值的变量 这个错误提示
屏蔽掉 使用了未赋值的变量 这个错误提示
那你就自己改造了
那你就自己改造了
那你就自己改造了
你可先预置 $res