在开发商城系统的时候,相信很多人遇到商品sku管理的问题。sku的生成方式是根据所有规格进行组合,也就是数学上的笛卡尔积,我用php写了两种方式,记录一下。

1、第一种,生成字符串

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

2、第二种,生成数组格式

<?phpfunction Cartesian($data){$len = count($data);// 取第一个集合数组值$result = $data[0];for ($i = 0; $i< $len-1; $i++) {$arr1 = $result;$result = [];// 数组第一个值和第二个值组合foreach ($arr1 as $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列表相关推荐

  1. php批量生成电商sku列表(笛卡尔积)

    在开发商城系统的时候,相信很多人遇到商品sku管理的问题.sku的生成方式是根据所有规格进行组合,也就是数学上的笛卡尔积. 生成字符串 <?phpfunction Cartesian($data ...

  2. Vue 的电商 SKU 表单配置组件

    下载地址Vue 的电商 SKU 表单配置组件,多条件筛选计算价格和库存. dd:

  3. 想进某电商公司?建议学会电商 sku 的全排列算法!

    前言 前段时间在掘金看到一个热帖 <今天又懒得加班了,能写出这两个算法吗?带你去电商公司写商品中心>,里面提到了一个比较有意思故事,大意就是一个看似比较简单的电商 sku 的全排列组合算法 ...

  4. 前端电商 sku 的全排列算法

    前端电商 sku 的全排列算法 什么是sku 聊聊常见的需求 解决思路 思路分解 上代码 什么是sku 针对电商而言: 1.SKU是指一款商品,每款都有出现一个SKU,便于电商品牌识别商品. 2.一款 ...

  5. spu是什么计算机软件,电商sku和spu的区别

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电商sku和spu的区别是: 1.SPU:标准化产品单元.SPU=Standard Product Unit(标准化产品单元).S ...

  6. 如何用App工厂免费生成电商应用

    App工厂(电商)旨在为用户提供一键生成电商应用的便捷方式.深度利用Mob平台的ShopSDK,结合完善的UI构成一个成熟的电商应用.大量节省同类应用开发的成本和周期以及对专业开发团队的依赖,同时提供 ...

  7. 前端电商 SKU 的全排列算法很难吗?学会这个套路,彻底掌握排列组合。

    前言 前段时间在掘金看到一个热帖 <今天又懒得加班了,能写出这两个算法吗?带你去电商公司写商品中心>,里面提到了一个比较有意思故事,大意就是一个看似比较简单的电商 sku 的全排列组合算法 ...

  8. php sku 表单提交,vue-sku-form 一款电商 SKU 表单配置组件

    先来一张图快速了解下组件形态 快速上手因为 vue-sku-form 基于 ElementUI 开发,安装使用前确保项目中已正确安装 ElementUI# 推荐使用 yarn 进行安装 yarn ad ...

  9. 两种常见电商sku的设计

    在电商系统中,商品sku和sku模型至关重要,是整个电商系统的重要组成部分之一,下面通过一些简单的知识整理和分析,讲解一下sku属性管理和常见的建模方式. 一.sku的定义及概念的统一 1.什么是sk ...

最新文章

  1. seaborn可视化displot绘制直方图(histogram)并通过axvline函数在直方图中添加中位数(median)竖线(自定义中位数竖线的线条形式)
  2. postgresql日常操作命令
  3. 视觉设计_视觉设计:
  4. [Java基础]复制文件的异常处理try...catch...finally的做法
  5. python如何设计系统界面教程_python中pycharm软件界面介绍与配置
  6. h5 一镜到底_这些一镜到底的H5还能怎么玩?
  7. Spark基础学习笔记10:Scala集成开发环境
  8. 隐马尔可夫模型,最大熵马尔可夫模型和条件随机场的区别与联系
  9. mysql索引超出范围 index_输入查询条件会报参数索引超出范围的错误
  10. 关于专注,关于最近的一些事情
  11. 计算机软件登记文档,计算机软件著作权登记申请表范本
  12. autocad不能画图_学了这50条CAD技巧,画图速度提10倍!
  13. multisim扩大工作区_利用Multisim 10仿真软件对共射投放大电路进行了计算机辅助设计和仿真...
  14. Python 安装openGL教程
  15. asp.net社区户籍档案管理系统
  16. 序列化和反序列化(示例)
  17. The Python Crop Simulation Environment 系列学习笔记(二)
  18. 如何取消U盘上的设备加密功能Bitlocker——win10家庭版磁盘上有个锁的解决办法——详细操作版本
  19. NYOJ 42 一笔画
  20. Oracle 字符函数

热门文章

  1. 95前的中年人,00后的「社交玩法」了解一下?
  2. 产品设计如何鼓励用户上传头像?
  3. Ubuntu18.04+GTX1060+显卡驱动+CUDA11.2+cuDNN8.1.1
  4. fiddler更新后证书导出和报错的坑(The root certificate could not be located.)
  5. python柱状图标注均值标准差_OpenCV Python 图像矩阵的均值和标准差
  6. 怎么把PDF页面删除?教你两种方法
  7. 震碎认知,将原理融会贯通到顶点的SpringBoot实战项目
  8. SysML精粹学习笔记二
  9. 文件管理之文件的逻辑结构
  10. FreeBSD新的JAIL管理工具QJAIL