php合并数组

图片描述

想把上面的数组变成下面这样的。求好的方法。
public function arr_uniqe($arr,$key)

{
    $key_arr = [];
    $color = [];
    foreach ($arr as $k => $v) {
        if(empty($color)){
            $color[] = $v['color'];
            $key_arr[$v['color']]['id'] = $v['id'];
            $key_arr[$v['color']]['name'] = $v['name'];
            $key_arr[$v['color']]['cate_id'] = $v['cate_id'];
            $key_arr[$v['color']]['color'] = $v['color'];
            $key_arr[$v['color']]['color_imgurl'] = $v['color_imgurl'];
            $key_arr[$v['color']]['gouzao']['gouzao_'.$v['gouzao']] = $v['gouzao'];
            $key_arr[$v['color']]['gouzao']['gouzao_imgurl_'.$v['gouzao']] = $v['gouzao_imgurl'];
        }else{
            if(in_array($v['color'],$color)){
                  $key_arr[$v['color']]['gouzao']['gouzao_'.$v['gouzao']] = $v['gouzao'];
                  $key_arr[$v['color']]['gouzao']['gouzao_imgurl_'.$v['gouzao']] = $v['gouzao_imgurl'];
            }else{
                    $color[] = $v['color'];
                    $key_arr[$v['color']]['id'] = $v['id'];
                    $key_arr[$v['color']]['name'] = $v['name'];
                    $key_arr[$v['color']]['cate_id'] = $v['cate_id'];
                    $key_arr[$v['color']]['color'] = $v['color'];
                    $key_arr[$v['color']]['color_imgurl'] = $v['color_imgurl'];
                    $key_arr[$v['color']]['gouzao']['gouzao_'.$v['color']] = $v['gouzao'];
                    $key_arr[$v['color']]['gouzao']['gouzao_imgurl_'.$v['color']] = $v['gouzao_imgurl'];
            }
        }
       
    }
    //sort($arr);
    return $key_arr;
}
附上自己的代码,感觉写的太戳了,所以想看看大神怎么写的!
阅读 1.2k
1 个回答

如果存在就是更新 gouzao , 不存在就创建新的

if (!isset($key_arr[$v['color']])) {
    $key_arr[$v['color']]= [];
    $key_arr[$v['color']]['id'] = $v['id'];
    $key_arr[$v['color']]['name'] = $v['name'];
    $key_arr[$v['color']]['cate_id'] = $v['cate_id'];
    $key_arr[$v['color']]['color'] = $v['color'];
    $key_arr[$v['color']]['color_imgurl'] = $v['color_imgurl'];
}

$key_arr[$v['color']]['gouzao']['gouzao_'.$v['gouzao']] = $v['gouzao'];
$key_arr[$v['color']]['gouzao']['gouzao_imgurl_'.$v['gouzao']] = $v['gouzao_imgurl'];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题