商城系统中的商品规格排列组合 | 木戈手机站

木戈手机站

当前位置: 首页 » 攻略 » 商城系统中的商品规格排列组合

商城系统中的商品规格排列组合

在商城系统中,商品规格是一种常见的属性,通常用简写pcs表示。具体来说,一个商品可能有多个属性,每个属性又包含多个规格,从而形成多种排列组合。在管理商品库存时,需要针对这些组合设置相应的库存和价格。

举例来说,一台电脑可能有不同内存(16G、32G、64G)、硬盘(500G、1T)和显卡(集成、独立)等规格。不同规格的商品在售卖时价格和库存都会有所不同,因此需要在后台针对每种组合单独设定价格和库存。

对于商城后台来说,需要单独设定这些产品的价格,这就需要列出所有的组合并设定价格。

举例来说,我们已知应该产生这样的排列组合然后设定价格和库存(这里的价格和库存仅为示例,并非实际市场价格)。

这里一共是12种组合,那如何用程序生成这样的组合呢?

从数据库读取的属性变量如下:

我们需要的是一个数组,包含12个元素,每个元素中是这些规格的组合。

类似于这样的结果。

那么怎么实现呢?如果使用三层循环进行嵌套实现,也可以,但是这种方法需要明确知道有多少种属性,且不够灵活,当属性增加或减少时,程序需要相应调整。

我们需要自动计算出所有组合,而不是手动检测属性种类并使用foreach遍历。

我使用了vscode里的插件 fitten code 帮我写了一个程序,调用一下看看。

从执行结果来看,是没问题的。这种方法使用了递归,对于普通的规格属性,即使有几十个排列组合,性能也不会太差。

但是我们追求极致,我再写个循环实现的,避免程序效率太低,看看怎么实现呢?

首先得弄个大循环,在里面一直进行循环,然后还得判断这种组合是否有过,层数如何解决呢?

我想可以先实现二层,再实现多层,逐步增加组合列表,话不多说,看代码。

好了,同样的代码调用一下,发现结果是一样的,大功告成!

上面递归的思路是递归发现自己是不是最后一个,不是的话就再递归,最终找到最后一个,形成组合,然后再与倒数第二个组合,再与倒数第三个组合。

我的思路是,先拿出第一个自然形成结果,再拿出第二个进行组合,然后拿出第三个跟现有结果进行组合,直到拿出最后一个规格进行组合最终形成结果赋值。

方法没有优劣,只有是不是适合以及你自己能不能接受,能不能维护。

猜你喜欢
本类排行