有相同KEY值的二维数组如何重新组合

法子 发布于 2012/10/22 17:05
阅读 544
收藏 1
PHP

大家好,有个二维数组重新组合的问题需要得到大家的帮助。

数组如下:

$attribute = array(
                                array("Software Languages", "English"),
                                array("Software Languages", "Français"),
                                array("Software Languages", "Deutsch"),
                                array("HDD Type", "Dell Any Sata HDD"),
                                array("HDD Type", "Dell D630"),
                                array("HDD Type", "HP Any Sata HDD"),
);

怎样把上面的数组格式重新组合成下面的样子呢?

$attribute = array(
                                array("Software Languages",array("English", "Français", "Deutsch")),
                                array("HDD Type",array("Dell Any Sata HDD", "Dell D630", "HP Any Sata HDD")),
);

麻烦大家赐教,谢谢!

加载中
0
汉唐
汉唐

1、新建一个map。

2、遍历你的二维数组。

3、你懂的。。。对php语法不熟悉- -#没法给示例了

法子
法子
谢谢!
0
用户已屏蔽
用户已屏蔽
哇 好有难度  不会
0
苗哥
苗哥
可以用数据库来操作么?先把这六条记录存到 mysql 数据库表里,然后用 group_concat() 来进行筛选试试。参考下 http://my.oschina.net/Kenyon/blog/70480
0
震秦
震秦

创建一个Map<String, List<String>> 

Map<String, List<String>>map,

if(map.contansKey("Software Languages")){

    map.get("Software Languages").add("English")

} else {

    map.put("Software Languages", Arrays.asList("English"))

}

大致的算法就这样,PHP我就不知道有没有这样的了.

0
皮总
皮总
<?php

$attribute = array (
	array("Software Languages", "English"),
	array("Software Languages", "Français"),
	array("Software Languages", "Deutsch"),
	array("HDD Type", "Dell Any Sata HDD"),
	array("HDD Type", "Dell D630"),
	array("HDD Type", "HP Any Sata HDD"),
);


foreach($attribute as $k => $v) {
	$result[$v[0]][] = $v[1];
}

var_dump($result);
法子
法子
辛苦皮总了,还有更复杂点的,嘿嘿http://www.oschina.net/question/242640_76289
0
goyem
goyem
楼上正解
0
Rella蕾拉
Rella蕾拉
额,对于我这么一个稍懂.net的,也会用map 去做。
0
朱__朱
朱__朱

$result=array();
foreach($attribute as $k => $v) {
	$result[$v[0]][$v[0]]=$v[0];
	$result[$v[0]]['item'][] = $v[1];
}

print_r($result);
法子
法子
谢谢你的帮助,还有一个更复杂的,过来看看吧!嘿嘿~http://www.oschina.net/question/242640_76289
返回顶部
顶部