如何获取对应数组的结果。形成新的对应数组
程序员文章站
2022-06-08 22:50:29
...
本帖最后由 qq914260102 于 2013-10-30 10:58:39 编辑 $t1 = Array ( 0 => '南昌', 1 => '南昌', 2 => '赣州', 3 => '九江', 4 => '赣州', 5 => '九江');
$t2 = Array ( 0 => '优秀', 1 => '良好', 2 => '优秀', 3 => '良好', 4 => '优秀', 5 => '差等' );
比如,我有上面两个数组。$t1【0】和$t2【0】....$t1【i】和$t2【i】是有对应关系的,$t1【0】和$t2【0】代表=====南昌,优秀。
我想把$t1去重形成一个新的数组$t11 = Array ( 0 => '南昌', 1 => '赣州', 2 => '九江');
同时对$t2进行拆分。形成三个新的数组(分别统计$t11数组对应的优秀、良好、差等)。分别和$t11关联。
南昌,赣州 九江优秀的数目统计。(根据$t2去计算优良差的个数)
优秀的数组如下
$t2_yx=Array ( 0 => '1', 1 => '2', 2 => '0' );
良好的数组如下
$t2_lh=Array ( 0 => '1', 1 => '0', 2 => '1' );
差等的数组如下
$t2_cd=Array ( 0 => '0', 1 => '0', 2 => '1' );
请问用程序什么实现。。感谢。
接下来就不用说了
接下来就不用说了
请高人说完。。谢谢了。
换种显示方式总该可以了吧。
$t2 = Array ( 0 => '优秀', 1 => '良好', 2 => '优秀', 3 => '良好', 4 => '优秀', 5 => '差等' );
比如,我有上面两个数组。$t1【0】和$t2【0】....$t1【i】和$t2【i】是有对应关系的,$t1【0】和$t2【0】代表=====南昌,优秀。
我想把$t1去重形成一个新的数组$t11 = Array ( 0 => '南昌', 1 => '赣州', 2 => '九江');
同时对$t2进行拆分。形成三个新的数组(分别统计$t11数组对应的优秀、良好、差等)。分别和$t11关联。
南昌,赣州 九江优秀的数目统计。(根据$t2去计算优良差的个数)
优秀的数组如下
$t2_yx=Array ( 0 => '1', 1 => '2', 2 => '0' );
良好的数组如下
$t2_lh=Array ( 0 => '1', 1 => '0', 2 => '1' );
差等的数组如下
$t2_cd=Array ( 0 => '0', 1 => '0', 2 => '1' );
请问用程序什么实现。。感谢。
回复讨论(解决方案)
//第一步$t1 = Array ( 0 => '南昌', 1 => '南昌', 2 => '赣州', 3 => '九江', 4 => '赣州', 5 => '九江'); $t2 = Array ( 0 => '优秀', 1 => '良好', 2 => '优秀', 3 => '良好', 4 => '优秀', 5 => '差等' );$t = array_map(null, $t1, $t2);print_r($t);/* 得到Array( [0] => Array ( [0] => 南昌 [1] => 优秀 ) [1] => Array ( [0] => 南昌 [1] => 良好 ) [2] => Array ( [0] => 赣州 [1] => 优秀 ) [3] => Array ( [0] => 九江 [1] => 良好 ) [4] => Array ( [0] => 赣州 [1] => 优秀 ) [5] => Array ( [0] => 九江 [1] => 差等 ))*///第二步$r = array();foreach($t as $v) { $r[$v[0]][] = $v[1];}print_r($r);/*得到Array( [南昌] => Array ( [0] => 优秀 [1] => 良好 ) [赣州] => Array ( [0] => 优秀 [1] => 优秀 ) [九江] => Array ( [0] => 良好 [1] => 差等 ))*///第三步$r = array_map('array_count_values', $r);print_r($r);/*得到Array( [南昌] => Array ( [优秀] => 1 [良好] => 1 ) [赣州] => Array ( [优秀] => 2 ) [九江] => Array ( [良好] => 1 [差等] => 1 ))
接下来就不用说了
接下来就不用说了
请高人指点咯。还是不太清楚。
//第一步$t1 = Array ( 0 => '南昌', 1 => '南昌', 2 => '赣州', 3 => '九江', 4 => '赣州', 5 => '九江'); $t2 = Array ( 0 => '优秀', 1 => '良好', 2 => '优秀', 3 => '良好', 4 => '优秀', 5 => '差等' );$t = array_map(null, $t1, $t2);print_r($t);/* 得到Array( [0] => Array ( [0] => 南昌 [1] => 优秀 ) [1] => Array ( [0] => 南昌 [1] => 良好 ) [2] => Array ( [0] => 赣州 [1] => 优秀 ) [3] => Array ( [0] => 九江 [1] => 良好 ) [4] => Array ( [0] => 赣州 [1] => 优秀 ) [5] => Array ( [0] => 九江 [1] => 差等 ))*///第二步$r = array();foreach($t as $v) { $r[$v[0]][] = $v[1];}print_r($r);/*得到Array( [南昌] => Array ( [0] => 优秀 [1] => 良好 ) [赣州] => Array ( [0] => 优秀 [1] => 优秀 ) [九江] => Array ( [0] => 良好 [1] => 差等 ))*///第三步$r = array_map('array_count_values', $r);print_r($r);/*得到Array( [南昌] => Array ( [优秀] => 1 [良好] => 1 ) [赣州] => Array ( [优秀] => 2 ) [九江] => Array ( [良好] => 1 [差等] => 1 ))
接下来就不用说了
请高人说完。。谢谢了。
请高人说完。。谢谢了。
其实说的够明显了,稍微改一下代码
$t1 = Array ( 0 => '南昌', 1 => '南昌', 2 => '赣州', 3 => '九江', 4 => '赣州', 5 => '九江'); $t2 = Array ( 0 => '优秀', 1 => '良好', 2 => '优秀', 3 => '良好', 4 => '优秀', 5 => '差等' ); $t = array_map(null, $t1, $t2); $r = array(); foreach($t as $v) { $r[$v[1]][] = $v[0]; } $r = array_map('array_count_values', $r); dump($r);//--------------------------------array(3) { ["优秀"] => array(2) { ["南昌"] => int(1) ["赣州"] => int(2) } ["良好"] => array(2) { ["南昌"] => int(1) ["九江"] => int(1) } ["差等"] => array(1) { ["九江"] => int(1) }}
换种显示方式总该可以了吧。
上一篇: ELK Stack最新版本测试一安装篇_PHP教程
下一篇: css如何设置文字中间的小竖线?
推荐阅读
-
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
-
python如何获得list或numpy数组中最大元素对应的索引
-
5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中, 将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为 选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输
-
怎么获取对应数组的结果。形成新的对应数组
-
怎么获取对应数组的结果。形成新的对应数组
-
如何获取对应数组的结果。形成新的对应数组
-
这种数据如何避免成PHP数组插入数据库 对应的值
-
这种数据如何避免成PHP数组插入数据库 对应的值
-
怎么获取指定时间段的内容,并且对应好其他数组
-
如何把这两个函数相同的键值相加形成新的数组