php开发商品怎么批量生成sku组合(php,sku,编程语言)

时间:2024-04-29 22:42:03 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

不同的系统有不同的需求,以下的需求就是要添加完各种规格后批量生成sku的。

php开发商品怎么批量生成sku组合

效果图

php开发商品怎么批量生成sku组合

页面代码这里就不说了,sku的生成方式是根据所有规格进行组合,也就是数学上的笛卡尔积,我用php写了两种方式,记录一下。

第一种,生成字符串

<?php

functionCartesian($data){
$len=count($data);

for($i=0;$i<$len-1;$i++){
if($i===0){
//数组第一个值
$result=$data[0];
}

$temp=[];
//数组第一个值和第二个值组合
foreach($resultas$res){
//数组第二个值...$i+1
foreach($data[$i+1]as$sec){
$temp[]=$res.'-'.$sec;
}
$result=$temp;
}
}

return$result;
}

//需要计算的数组
$data=array(
array('白色','银色','玫瑰金'),
array('64G','128G'),
array('移动','电信','联通'),
array('国行','港版')
);

//打印结果
$result=Cartesian($data);
print_r($result);
?>

实际开发中,你只要生成上面的二维数组就可以组合了,效果如下:

Array
(
[0]=>白色-64G-移动-国行
[1]=>白色-64G-移动-港版
[2]=>白色-64G-电信-国行
[3]=>白色-64G-电信-港版
[4]=>白色-64G-联通-国行
[5]=>白色-64G-联通-港版
[6]=>白色-128G-移动-国行
[7]=>白色-128G-移动-港版
[8]=>白色-128G-电信-国行
[9]=>白色-128G-电信-港版
[10]=>白色-128G-联通-国行
[11]=>白色-128G-联通-港版
[12]=>银色-64G-移动-国行
[13]=>银色-64G-移动-港版
[14]=>银色-64G-电信-国行
[15]=>银色-64G-电信-港版
[16]=>银色-64G-联通-国行
[17]=>银色-64G-联通-港版
[18]=>银色-128G-移动-国行
[19]=>银色-128G-移动-港版
[20]=>银色-128G-电信-国行
[21]=>银色-128G-电信-港版
[22]=>银色-128G-联通-国行
[23]=>银色-128G-联通-港版
[24]=>玫瑰金-64G-移动-国行
[25]=>玫瑰金-64G-移动-港版
[26]=>玫瑰金-64G-电信-国行
[27]=>玫瑰金-64G-电信-港版
[28]=>玫瑰金-64G-联通-国行
[29]=>玫瑰金-64G-联通-港版
[30]=>玫瑰金-128G-移动-国行
[31]=>玫瑰金-128G-移动-港版
[32]=>玫瑰金-128G-电信-国行
[33]=>玫瑰金-128G-电信-港版
[34]=>玫瑰金-128G-联通-国行
[35]=>玫瑰金-128G-联通-港版
)

第二种,生成数组格式

<?php

functionCartesian($data){
$len=count($data);

//取第一个集合数组值
$result=$data[0];
for($i=0;$i<$len-1;$i++){
$arr1=$result;
$result=[];
//数组第一个值和第二个值组合
foreach($arr1as$res){
//数组第二个值...$i+1
foreach($data[$i+1]as$sec){
if(!is_array($res)){
$res=array($res);
}
if(!is_array($sec)){
$sec=array($sec);
}
$result[]=array_merge_recursive($res,$sec);
}
}

}

return$result;
}

//需要计算的数组
$data=array(
array('白色','银色','玫瑰金'),
array('64G','128G'),
array('移动','电信','联通'),
array('国行','港版')
);

//打印结果
$result=Cartesian($data);
print_r($result);

?>

输出打印结果

Array
(
[0]=>Array
(
[0]=>白色
[1]=>64G
[2]=>移动
[3]=>国行
)

[1]=>Array
(
[0]=>白色
[1]=>64G
[2]=>移动
[3]=>港版
)

[2]=>Array
(
[0]=>白色
[1]=>64G
[2]=>电信
[3]=>国行
)

[3]=>Array
(
[0]=>白色
[1]=>64G
[2]=>电信
[3]=>港版
)

[4]=>Array
(
[0]=>白色
[1]=>64G
[2]=>联通
[3]=>国行
)

[5]=>Array
(
[0]=>白色
[1]=>64G
[2]=>联通
[3]=>港版
)

[6]=>Array
(
[0]=>白色
[1]=>128G
[2]=>移动
[3]=>国行
)

[7]=>Array
(
[0]=>白色
[1]=>128G
[2]=>移动
[3]=>港版
)

[8]=>Array
(
[0]=>白色
[1]=>128G
[2]=>电信
[3]=>国行
)

[9]=>Array
(
[0]=>白色
[1]=>128G
[2]=>电信
[3]=>港版
)

[10]=>Array
(
[0]=>白色
[1]=>128G
[2]=>联通
[3]=>国行
)

[11]=>Array
(
[0]=>白色
[1]=>128G
[2]=>联通
[3]=>港版
)

[12]=>Array
(
[0]=>银色
[1]=>64G
[2]=>移动
[3]=>国行
)

[13]=>Array
(
[0]=>银色
[1]=>64G
[2]=>移动
[3]=>港版
)

[14]=>Array
(
[0]=>银色
[1]=>64G
[2]=>电信
[3]=>国行
)

[15]=>Array
(
[0]=>银色
[1]=>64G
[2]=>电信
[3]=>港版
)

[16]=>Array
(
[0]=>银色
[1]=>64G
[2]=>联通
[3]=>国行
)

[17]=>Array
(
[0]=>银色
[1]=>64G
[2]=>联通
[3]=>港版
)

[18]=>Array
(
[0]=>银色
[1]=>128G
[2]=>移动
[3]=>国行
)

[19]=>Array
(
[0]=>银色
[1]=>128G
[2]=>移动
[3]=>港版
)

[20]=>Array
(
[0]=>银色
[1]=>128G
[2]=>电信
[3]=>国行
)

[21]=>Array
(
[0]=>银色
[1]=>128G
[2]=>电信
[3]=>港版
)

[22]=>Array
(
[0]=>银色
[1]=>128G
[2]=>联通
[3]=>国行
)

[23]=>Array
(
[0]=>银色
[1]=>128G
[2]=>联通
[3]=>港版
)

[24]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>移动
[3]=>国行
)

[25]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>移动
[3]=>港版
)

[26]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>电信
[3]=>国行
)

[27]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>电信
[3]=>港版
)

[28]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>联通
[3]=>国行
)

[29]=>Array
(
[0]=>玫瑰金
[1]=>64G
[2]=>联通
[3]=>港版
)

[30]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>移动
[3]=>国行
)

[31]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>移动
[3]=>港版
)

[32]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>电信
[3]=>国行
)

[33]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>电信
[3]=>港版
)

[34]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>联通
[3]=>国行
)

[35]=>Array
(
[0]=>玫瑰金
[1]=>128G
[2]=>联通
[3]=>港版
)

)

本文:php开发商品怎么批量生成sku组合的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:docker web中文乱码如何解决下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18