php二维数组组合处理

$test = [
            [
                [
                    'id' => 15,
                    'name' => '红色',
                ],
                [
                    'id' => 16,
                    'name' => '蓝色',
                ],
                [
                    'id' => 19,
                    'name' => '蓝色',
                ],
            ],
            [
                [
                    'id' => '17',
                    'name' => 'L'
                ],
                [
                    'id' => '18',
                    'name' => 'M'
                ],
                [
                    'id' => '20',
                    'name' => 'M'
                ],
            ]
        ];

想拿第一个元素的id和后面元素的id拼接成如下

^ array:9 [0 => "15-17"
  1 => "15-18"
  2 => "15-20"
  3 => "16-17"
  4 => "16-18"
  5 => "16-20"
  6 => "19-17"
  7 => "19-18"
  8 => "19-20"
]

代码如下:

		$arr = [];//存放数组
        for($i=0;$i<count($test);$i++){
            if($i == 0){//第一个元素,直接存入数组
                foreach($test[$i] as $v){
                    $arr[] = $v['id'];
                }
            }else{
                $arrx = [];//存放新组合
                foreach($arr as $v){
                    foreach($test[$i] as $tv){
                        $arrx[] = $v . '-' . $tv['id'];
                    }
                }
                $arr = $arrx;//替换成最新的
            }
        }

        print_r($arr);die;

版权声明:本文为qq_40649432原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。