php生成商品sku算法

实现代码
<?php
$attributes = [
    [
        "value" => "容量",
        "detail" => ["50ml", "100ml", "200ml"]
    ],
    [
        "value" => "颜色",
        "detail" => ["白色", "黑色"]
    ],
	[
        "value" => "高度",
        "detail" => ["10cm", "20cm","30cm"]
    ]
];

function generateSKUs($attributes) {
    $skus = [];
    $combinations = [[]];

    // Generate all possible combinations of attribute values
    foreach ($attributes as $attribute) {
        $new_combinations = [];
        foreach ($combinations as $combination) {
            foreach ($attribute["detail"] as $value) {
                $new_combinations[] = array_merge($combination, [$attribute["value"] => $value]);
            }
        }
        $combinations = $new_combinations;
    }

    // Generate SKUs based on combinations
    foreach ($combinations as $combination) {
        $sku = '';
        foreach ($combination as $key => $value) {
            $sku .= $key . ':' . $value . '|';
        }
        $skus[] = rtrim($sku, '|');
    }

    return $skus;
}

$skus = generateSKUs($attributes);

// Print generated SKUs
foreach ($skus as $sku) {
    echo "SKU: " . $sku . "\n";
}
?>

输出文本
SKU: 容量:50ml|颜色:白色|高度:10cm
SKU: 容量:50ml|颜色:白色|高度:20cm
SKU: 容量:50ml|颜色:白色|高度:30cm
SKU: 容量:50ml|颜色:黑色|高度:10cm
SKU: 容量:50ml|颜色:黑色|高度:20cm
SKU: 容量:50ml|颜色:黑色|高度:30cm
SKU: 容量:100ml|颜色:白色|高度:10cm
SKU: 容量:100ml|颜色:白色|高度:20cm
SKU: 容量:100ml|颜色:白色|高度:30cm
SKU: 容量:100ml|颜色:黑色|高度:10cm
SKU: 容量:100ml|颜色:黑色|高度:20cm
SKU: 容量:100ml|颜色:黑色|高度:30cm
SKU: 容量:200ml|颜色:白色|高度:10cm
SKU: 容量:200ml|颜色:白色|高度:20cm
SKU: 容量:200ml|颜色:白色|高度:30cm
SKU: 容量:200ml|颜色:黑色|高度:10cm
SKU: 容量:200ml|颜色:黑色|高度:20cm
SKU: 容量:200ml|颜色:黑色|高度:30cm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值