将以下数组合并为一个数组
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
))
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
))
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);
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
))
"id"=>"default",
"name"=>"aaa",
"tel"=>"bbb",
"age"=>"ccc",
"sex"=>"111"
),
array(
"id"=>"11",
"name"=>"aaa",
"tel"=>"bbb",
"age"=>"ccc",
"sex"=>"111"
),
array(
"id"=>"22",
"name"=>"aaa",
"tel"=>"bbb",
"age"=>"ccc",
"sex"=>"111"
),
array(
"id"=>"33",
"name"=>"aaa",
"tel"=>"bbb",
"age"=>"ccc",
"sex"=>"111"
),
array(
"id"=>"44",
"name"=>"new",
"tel"=>"eee",
"age"=>"fff",
"sex"=>"222"
),
array(
"id"=>"66",
"name"=>"new",
"tel"=>"eee",
"age"=>"fff",
"sex"=>"222"
)
);补上测试用例,合并后的数组为:
$testNew = Array( array(
"id"=> array(
"default",
"11",
"22",
"33"
),
"name"=>"aaa",
"tel"=>"bbb",
"age"=>"ccc",
"sex"=>"111"
),
array(
"id"=> array(
"44",
"66"
),
"name"=>"new",
"tel"=>"eee",
"age"=>"fff",
"sex"=>"222"
)
);