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
)
)
------解决方案--------------------
$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); <div class="clear"></div>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号