永发信息网

php将数组键值相同的数组合并数组为一个数组

答案:1  悬赏:30  手机版
解决时间 2021-04-04 15:41
有这样一个数组:
$arr1 = array(
array("username"=>"piaoyudesi","email"=>"piaoyudesi@163.com","address"=>"shenzhen","item_id"=>"10058","item_title"=>"BPS8"),

array("username"=>"huaka","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")

);
数组中有用户信息username,email,address,产品信息item_id,item_title
也就是同一个用户购买了不同的产品,现在要把username相同的值合并,但是item_id,item_title不能合并
合并之后最好是这样的数组
array("username=>"piaoyudesi",
"email"=>"piaoyudesi@163.com",
"address"=>"shenzhen",
"goods"=>array(array("item_id"=>"10058","item_title"=>BPS8"),
array("item_id"=>"10047", "item_title"=>BPS10")
)
array("username=>"huakai",
"email"=>"huakai@163.com",
"address"=>"zhongshan",
"goods"=>array(array("item_id"=>"10087", "item_title"=>BPS9"),
array("item_id"=>"10047", "item_title"=>BPS10")
)
array("username=>"jimowenxin",
"email"=>"jimowenxin@163.com",
"address"=>"zhuhai",
"goods"=>array(array("item_id"=>"10031", "item_title"=>BPS18")
)
最佳答案



把'huaka'改成了'huakai'似乎是一个人

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
)
)
)
)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
酸碱指示剂只能指示溶液的______而不能测定溶
图解怎样修眉和画眉
桂阳县郴州小城故事(桂阳欧阳海店)地址在什么
15减x除2=8怎么解
价值观什么意思?请举例说明。
单选题_____beautifultheshoesare!A.WhatB.Wh
广州哪里有打耳洞的地方,求介绍
It's about ( ) walk A.two hours B.two hou
赞美武术的词语
手机屏幕压坏了 修要多少钱
流行歌曲中有丢手绢的歌曲是什么歌??
(2012年2月济南检测)如图所示,在光滑水平
燕赵风采电脑福利彩票排列7 2006138期中奖号
面包基础发酵时间以及二次发酵需多长时间
单选题家中的盆花不宜放在卧室内过夜,这是因
推荐资讯
售货员阿姨这里有四种饮料小东想买其中的三种
小米手环可以记录跑步轨迹吗
我姓袁,然后怎么怎么的句子。好听的,诗意一
为什么世界上这么多山驴逼呢?
长春市60岁以上老人每年960元独生子女费政策
由鹦鹉开头的歇后语
求终极一班,终极一班3,终极一家,终极三国
从中山门到南开区时代奥城的公交车
oppo手机怎么让软件一直开着
请问新款长安牌sc7202a型号车出厂日期是什么
在北京货拉拉和58哪个好挣钱?
那里有买或者定做交大附中校服?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?