Heim  >  Artikel  >  Backend-Entwicklung  >  如何获取对应数组的结果。形成新的对应数组

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

WBOY
WBOYOriginal
2016-06-23 14:25:56981Durchsuche

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

接下来就不用说了

接下来就不用说了

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

//第一步$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)  }}


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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn