读书人

php数结合并 高手挑战

发布时间: 2012-08-09 15:59:21 作者: rapoo

php数组合并 高手挑战
将以下数组合并为一个数组
Array
(
[0] => Array
(
[id] => default
[name] => aaa
[tel] => bbb
[age] => ccc
)

[1] => Array
(
[id] => 11
[name] => aaa
[tel] => bbb
[age] => ccc
)

[2] => Array
(
[id] => 22
[name] => aaa
[tel] => bbb
[age] => ccc
)

[3] => Array
(
[id] => 33
[name] => aaa
[tel] => bbb
[age] => ccc
)

[4] => Array
(
[id] => 44
[name] => new
[tel] => eee
[age] => fff
)

[5] => Array
(
[id] => 66
[name] => new
[tel] => eee
[age] => fff
)

)


将以上数组合并为下面的数组

Array
(
[0] => Array
(
[id] => array(
[0] => default
[1] => 11
[2] => 22
[3] => 33
)
[name] => aaa
[tel] => bbb
[age] => ccc
)

[1] => Array
(
[id] => array(
[0] => 44,
[1] => 66
)
[name] => new
[tel] => eee
[age] => fff
)

)

[解决办法]

PHP code
$ar = array (  0 =>   array (    'id' => 'default',    'name' => 'aaa',    'tel' => 'bbb',    'age' => 'ccc',  ),  1 =>   array (    'id' => '11',    'name' => 'aaa',    'tel' => 'bbb',    'age' => 'ccc',  ),  2 =>   array (    'id' => '22',    'name' => 'aaa',    'tel' => 'bbb',    'age' => 'ccc',  ),  3 =>   array (    'id' => '33',    'name' => 'aaa',    'tel' => 'bbb',    'age' => 'ccc',  ),  4 =>   array (    'id' => '44',    'name' => 'new',    'tel' => 'eee',    'age' => 'fff',  ),  5 =>   array (    'id' => '66',    'name' => 'new',    'tel' => 'eee',    'age' => 'fff',  ),);$res = array();foreach($ar as $r) {  $k = "$r[name]--$r[tel]--$r[age]";  if(! isset($res[$k])) {    $res[$k] = $r;    $res[$k]['id'] = array();  }  $res[$k]['id'][] = $r['id'];}$res = array_values($res);print_r($res); 

读书人网 >PHP

热点推荐