为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 二维数组中某些key合并相同部分,不同部分组成新的数组

PHP 二维数组中某些key合并相同部分,不同部分组成新的数组

PHP
扬帆大鱼 2019-03-17 18:23:19
如何将 $arr 数组变成 $newArr 的结构 $arr = [ [ 'id' => '1', 'name' => 'a', 'attr' => '红色', 'val' => '10' ], [ 'id' => '1', 'name' => 'a', 'attr' => '蓝色', 'val' => '11' ], [ 'id' => '2', 'name' => 'b', 'attr' => '绿色', 'val' => '12' ], [ 'id' => '2', 'name' => 'b', 'attr' => '黄色', 'val' => '13' ], ]; 要变成的数组结构: $arr = [ [ 'id' => '1', 'name' => 'a', 'info' => [ ['attr' => '红色', 'val' => '10'] ['attr' => '蓝色', 'val' => '11'] ] ], [ 'id' => '2', 'name' => 'b', 'info' => [ ['attr' => '绿色', 'val' => '12'] ['attr' => '绿色', 'val' => '13'] ] ] ];
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

$data = [];
array_map(function($key) use (&$data){
    if (!isset($data[$key['id']])) {
        $data[$key['id']] = [
            'id' => $key['id'],
            'name' => $key['name'],
        ];
    }
    $data[$key['id']]['info'][] = [
        'attr' => $key['attr'],
        'val' => $key['val'],
    ];
}, $arr);
print_r(array_values($data));
查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 679 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信