有时候我们需要将两个数组合并,并且将某些键值再次合并成一个数组。
想了很多方法,都不理想,最后百度看了一个不错的方法,在这里分享给大家。
<?php $a=array( array("username"=>"piaoyudesi","email"=>"piaoyudesi@163.com","address"=>"shenzhen","item_id"=>"10058","item_title"=>"BPS8"), array("username"=>"huakai","email"=>"huakai@163.com","address"=>"zhongshan","item_id"=>"10087","item_title"=>"BPS9"), array("username"=>"huakai","email"=>"huakai@163.com","address"=>"zhongshan","item_id"=>"10047","item_title"=>"BPS10"), array("username"=>"piaoyudesi","email"=>"piaoyudesi@163.com","address"=>"shenzhen","item_id"=>"10042","item_title"=>"BPS10"), array("username"=>"jimowenxin","email"=>"jimowenxin@163.com","address"=>"zhuhai","item_id"=>"10031","item_title"=>"BPS18") ); $u=array(); foreach($a as $k=>&$e){ $name=&$e['username']; if(!isset($u[$name])){ $u[$name]=$e; unset($u[$name]['item_id'],$u[$name]['item_title']); } $u[$name]['goods'][]=array('item_id'=>$e['item_id'],'item_title'=>$e['item_title']); } $a=array_values($u); unset($u); print_r($a); ========= Array ( [0] => Array ( [username] => piaoyudesi [email] => piaoyudesi@163.com [address] => shenzhen [goods] => Array ( [0] => Array ( [item_id] => 10058 [item_title] => BPS8 ) [1] => Array ( [item_id] => 10042 [item_title] => BPS10 ) ) ) [1] => Array ( [username] => huakai [email] => huakai@163.com [address] => zhongshan [goods] => Array ( [0] => Array ( [item_id] => 10087 [item_title] => BPS9 ) [1] => Array ( [item_id] => 10047 [item_title] => BPS10 ) ) ) [2] => Array ( [username] => jimowenxin [email] => jimowenxin@163.com [address] => zhuhai [goods] => Array ( [0] => Array ( [item_id] => 10031 [item_title] => BPS18 ) ) ) )