PHP导出商品规格属性至Excel进行分组,根据商品属性值id进行分组

输出商品规格属性至Excel,属性不明确的情况下,可以通过商品规格值(如尺寸,颜色),例如 S码 灰蓝,L码 灰蓝色,XL 灰蓝等匹配方式,根据商品id,对product_attribute(商品属性),product_option(商品选项),product_option_value(商品选项值)三张表查询,查询出商品选项值id(product_option_value_id),将id放到一个数组里面,对数组进行分组算法操作,部分代码如下:

PHP导出商品规格属性至Excel进行分组,根据商品属性值id进行分组

查询后得到product_option_value_id组成的数组

get_combination($product_arr){

$rows = array();//存放第一列数组
foreach($product_arr as $option => $items){
    if(count($rows) > 0){ 
        $clone = $rows;
        $rows = array(); //清空rows,不然每次循环会覆盖第一次的内容
        foreach($items as $item){
            $tmp = $clone;
            foreach($tmp as $index => $val){
                $val[$option] = $item['product_option_value_id'];
                $tmp[$index] = $val;
            }
            $rows = array_merge($rows, $tmp);  //将数组和临时组合的数组进行合并
        }
    }else{
        //记录第一列
        foreach($items as $item){
            $rows[][$option] = $item['product_option_value_id'];
        }
    }
}
return $rows;

}

$productTmp = array(

                            array(  //尺寸

                                 array('product_option_value_id'=>1),     

                                 array('product_option_value_id'=>2)

                           ),array(    //  颜色

                                 array('product_option_value_id'=>4),

                                 array('product_option_value_id'=>5)

                           )

                         );

$rows = get_combination($productTmp);

输出结果如下:

PHP导出商品规格属性至Excel进行分组,根据商品属性值id进行分组

导出至Excel的显示:

PHP导出商品规格属性至Excel进行分组,根据商品属性值id进行分组