php生成字符串和数组形式的商品sku

[复制链接]
webmaster 发表于 2022-1-17 02:14:58 | 显示全部楼层 |阅读模式
[PHP] 纯文本查看 复制代码
//生成的是字符拼接出来的sku
function Skujson($data){
    $len = count($data);
    for ($i = 0; $i< $len-1; $i++) {
        if ($i === 0) {
            // 数组第一个值
            $result = $data[0];
        }
        $temp = [];
        // 数组第一个值和第二个值组合
        foreach ($result as $res) {
            //数组第二个值...$i+1
            foreach($data[$i+1] as $sec){
                $temp[] = $res . '-' . $sec;
            }
            $result = $temp;
        }
    }
    return $result;
}

//生成的是数组形式的sku
function Skuarray($data){
    $len = count($data);
    // 取第一个集合数组值
    $result = $data[0];
    for ($i = 0; $i< $len-1; $i++) {
        $arr1 = $result;
        $result = [];
        // 数组第一个值和第二个值组合
        foreach ($arr1 as $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 = Skujson($data);
print_r($result); //   白色-64G-移动-国行

$result = Skuarray($data);
print_r($result); //   [[白色],[64G],[移动],[国行]]

有花须折直须折,莫待无花空折枝
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

快速回复 返回顶部 返回列表