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


这篇文章主要讲解了“php开发商品怎么批量生成sku组合”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php开发商品怎么批量生成sku组合”吧!

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

效果图

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

第一种,生成字符串

<?phpfunctionCartesian($data){$len=count($data);for($i=0;$i<$len-1;$i++){if($i===0){//数组第一个值$result=$data[0];}$temp=[];//数组第一个值和第二个值组合foreach($resultas$res){//数组第二个值...$i+1foreach($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-联通-港版)

第二种,生成数组格式

<?phpfunctionCartesian($data){$len=count($data);//取第一个集合数组值$result=$data[0];for($i=0;$i<$len-1;$i++){$arr1=$result;$result=[];//数组第一个值和第二个值组合foreach($arr1as$res){//数组第二个值...$i+1foreach($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组合”的内容了,经过本文的学习后,相信大家对php开发商品怎么批量生成sku组合这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是主机评测网,小编将为大家推送更多相关知识点的文章,欢迎关注!


上一篇:jquery就绪函数怎么使用

下一篇:Python中怎么通过@classmethod实现多态


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索