PHP导出商品规格属性至Excel进行分组,根据商品属性值id进行分组
输出商品规格属性至Excel,属性不明确的情况下,可以通过商品规格值(如尺寸,颜色),例如 S码 灰蓝,L码 灰蓝色,XL 灰蓝等匹配方式,根据商品id,对product_attribute(商品属性),product_option(商品选项),product_option_value(商品选项值)三张表查询,查询出商品选项值id(product_option_value_id),将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);
输出结果如下:
导出至Excel的显示: