php 合并多维数组中相同的值

Array(Array(Array([stocknotifyId]=>1,[sku]=>'13809_BL_37',[email]=>'huang@aaa.com'),A... Array(
Array(
Array([stocknotifyId] => 1,[sku] => '13809_BL_37',[email] => 'huang@aaa.com'), Array([stocknotifyId] => 3,[sku] => '13809_BL_37',[email] => 'hrheve@dfwef.com'), Array([stocknotifyId] => 5,[sku] => '13809_BL_37',[email] => 'dfsfs@dfsf.com') ), Array( Array([stocknotifyId] => 2,[sku] => '13809_B_39',[email] => 'huang@aaa.com') ) Array( Array([stocknotifyId] => 4,[sku] => '13809_BL_39',[email] =>'hrheve@dfwef.com') ))
怎么写,合并后变为:
array(
[huang@aaa.com]=>array(
array( [stocknotifyId] => 1,[sku] => '13809_BL_37')
array([stocknotifyId] => 2,[sku] => '13809_B_39')
)
[hrheve@dfwef.com]=>array(
array([stocknotifyId] => 3,[sku] => '13809_BL_37')
array([stocknotifyId] => 4,[sku] => '13809_BL_39')
)
[dfsfs@dfsf.com]=>array(
array([stocknotifyId] => 5,[sku] => '13809_BL_37')
)
)
展开
 我来答
faps
推荐于2018-03-15 · 超过33用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:97.6万
展开全部
$arr = array(
    array(
        array(
"stocknotifyId" => 1,
"sku" => '13809_BL_37',
"email" => 'huang@aaa.com'
),
        array(
"stocknotifyId" => 3,
"sku" => '13809_BL_37',
"email" => 'hrheve@dfwef.com'
),
        array(
"stocknotifyId" => 5,
"sku" => '13809_BL_37',
"email" => 'dfsfs@dfsf.com'
)
),
    array(
array(
"stocknotifyId" => 2,
"sku" => '13809_B_39',
"email" => 'huang@aaa.com'
)
),
array(
array(
"stocknotifyId" => 4,
"sku" => '13809_BL_39',
"email" =>'hrheve@dfwef.com'
)
)
);


$re = array();

foreach($arr as $a) {
foreach ($a as $v) {
$tmp_v = $v;
unset($tmp_v['email']);
if(isset($re[$v['email']])) {
$re[$v['email']][] = $tmp_v;
}else{
$re[$v['email']] = array($tmp_v);
}

}
}

print_r($re);

 

<!-- output -->
Array    
(    
   [huang@aaa.com] => Array    
       (    
           [0] => Array    
               (    
                   [stocknotifyId] => 1    
                   [sku] => 13809_BL_37    
               )    
           [1] => Array    
               (    
                   [stocknotifyId] => 2    
                   [sku] => 13809_B_39    
               )    
       )    
   [hrheve@dfwef.com] => Array    
       (    
           [0] => Array    
               (    
                   [stocknotifyId] => 3    
                   [sku] => 13809_BL_37    
               )    
           [1] => Array    
               (    
                   [stocknotifyId] => 4    
                   [sku] => 13809_BL_39    
               )    
       )    
   [dfsfs@dfsf.com] => Array    
       (    
           [0] => Array    
               (    
                   [stocknotifyId] => 5    
                   [sku] => 13809_BL_37    
               )    
       )    
)
嘿嘿嘿吧bo
2013-12-27 · TA获得超过306个赞
知道小有建树答主
回答量:375
采纳率:66%
帮助的人:159万
展开全部
//原数组
$arr = array(
    array(
        array('stocknotifyId'=>1,'sku'=>'13809_BL_37','email'=>'huang@aaa.com'),
        array('stocknotifyId'=>3,'sku'=>'13809_BL_37','email'=>'hrheve@dfwef.com'),
        array('stocknotifyId'=>5,'sku'=>'13809_BL_37','email'=>'dfsfs@dfsf.com'),
        array(
            array('stocknotifyId'=>2,'sku'=>'13809_B_39','email'=>'huang@aaa.com')
        ),
        array(
            array('stocknotifyId'=>4,'sku'=>'13809_B_39','email'=>'hrheve@dfwef.com')
        )
    )
);

echo "<pre>";   print_r($arr);

//把$arr转换成统一格式的二维数组
$array = array();
foreach($arr as $val){
    foreach($val as $v){
        foreach($v as $vop){
            if(is_array($vop)){
                $array[$vop['stocknotifyId']] = $vop;
            }else{
                $array[$v['stocknotifyId']] = $v;
            }
        }
    }
}
ksort($array);
echo "<hr />";  print_r($array);

//转换成想要的数组
$array_res = array();
foreach($array as $val){
    $array_res[$val['email']][] = $val;
}
echo "<hr />"; print_r($array_res);


//我已经测试过了,可以转换成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
holly336
2013-12-27 · TA获得超过186个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:105万
展开全部
$s=Array( Array( Array([stocknotifyId] => 1,[sku] => '13809_BL_37',[email] => 'huang@aaa.com'), Array([stocknotifyId] => 3,[sku] => '13809_BL_37',[email] => 'hrheve@dfwef.com'), Array([stocknotifyId] => 5,[sku] => '13809_BL_37',[email] => 'dfsfs@dfsf.com') ), Array( Array([stocknotifyId] => 2,[sku] => '13809_B_39',[email] => 'huang@aaa.com') ) Array( Array([stocknotifyId] => 4,[sku] => '13809_BL_39',[email] =>'hrheve@dfwef.com') ));
// 怎么写,合并后变为:
foreach ( $s[0][0] as $t )
{
$ret['email']=array( ['stocknotifyId'] => $t['stocknotifyId'],['sku'] =>$t['sku'] );
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nic_colin
2013-12-27 · TA获得超过104个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:179万
展开全部
我先给试试啊。能解决的话我就给贴出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式