美文网首页
关于若干数组组合的问题 PHP

关于若干数组组合的问题 PHP

作者: 譬如朝潞 | 来源:发表于2019-08-09 16:59 被阅读0次

主要是用于商品多规格时候 规格的组合,比如选择规格颜色:蓝色,红色,风格:卡通,动漫,在php 处理中要组合蓝色卡通;蓝色动漫,红色卡通,红色动漫,或者有更多的规格项怎么组合的问题。上代码,如下数组格式

规格数组格式

想要得到如下的组合

想要的结果

这试试两个子数组,可能或有更多规格组成更多的数组

1.先将数组安装id键值将同样id的数组集合在一起

    foreach ($data as $key => $value) {

            $items[$value['id']][] = $value;

        }

        $items = array_values($items);

2.将转化的数组一一组合

private function __changeSpecData($data){

        $count = count($data);

        if ($count >= 2) {

            $count1 = count($data[0]);

            $count2 = count($data[1]);

            $newcount = $count1 * $count2;

            $temp = [];

            $index = 0;

            for ($i = 0; $i < $count1; $i++) {

                for ( $j = 0; $j < $count2; $j++) {

                    if(count($data[0][$i]) == count($data[0][$i],1)){

                        $temp[$index] = [$data[0][$i],$data[1][$j]];

                    }else{

                        $row = $data[0][$i];

                        $row[] = $data[1][$j];

                        $temp[$index] = $row; 

                        unset($row); 

                    }

                    $index++;

                }

            } 

            $newArray[0] = $temp;

            for ( $i = 2; $i < $count; $i++){

                $newArray[$i - 1] = $data[$i];

            }

            return $this->__changeSpecData($newArray);//递归循环数组

        }

        else{

            return $data[0];

        }

    }

瑾记录一下 有更好的办法请指正

相关文章

  • 关于若干数组组合的问题 PHP

    主要是用于商品多规格时候 规格的组合,比如选择规格颜色:蓝色,红色,风格:卡通,动漫,在php 处理中要组合蓝色卡...

  • PHP implode() explode() 函数

    (一)、PHP implode() 函数 把数组元素组合为字符串:

  • php——数组合并

    php——数组合并 第一种: 使用运算符“+” PHP的数组运算符“+”可以用来联合两个(或多个数组) 可以看出:...

  • php数组合并

    顾名思义,数组合并就是讲一个或多个数组合并起来,一个数组的值加在前一个数组的后面,最后返回结果数组。 下面就来介绍...

  • php数组合并

    array_merge array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • PHP-流程控制

    php遍历数组的三种方式与区别 forforeachwhile、list()、each()组合 for循环只能遍历...

  • 关于PHP的数组问题之函数

    一、array_change_key_case — 将 array 数组中的所有键名改为全小写或大写 $case值...

  • php数组合并,拆分,替换,组合

    php数组的操作(合并,拆分,删除,排序) 1. 合并数组 array_merge ( array $array1...

  • Java--数组概述与特点

    数组的定义  数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中...

网友评论

      本文标题:关于若干数组组合的问题 PHP

      本文链接:https://www.haomeiwen.com/subject/mxwhjctx.html