如何获取对应数组的结果。形成新的对应数组

WBOY
Release: 2016-06-23 14:25:56
Original
984 people have browsed it

本帖最后由 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' );

请问用程序什么实现。。感谢。

回复讨论(解决方案)

//第一步$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        ))
Copy after login
Copy after login

接下来就不用说了

接下来就不用说了

请高人指点咯。还是不太清楚。

//第一步$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        ))
Copy after login
Copy after login

接下来就不用说了

请高人说完。。谢谢了。

请高人说完。。谢谢了。

其实说的够明显了,稍微改一下代码

$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)  }}
Copy after login


换种显示方式总该可以了吧。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template