>  기사  >  백엔드 개발  >  php와 sku의 조합은 데카르트 곱을 사용하여 구현됩니다!

php와 sku의 조합은 데카르트 곱을 사용하여 구현됩니다!

藏色散人
藏色散人앞으로
2023-04-17 15:43:521507검색

이 글은 PHP와 SKU에 대한 관련 지식을 제공합니다. 주로 PHP가 SKU 배열을 얻기 위해 데카르트 곱 연산을 수행하는 방법을 소개합니다. 관심 있는 친구는 아래에서 살펴보는 것이 도움이 될 것입니다. 모두가 도움이 됩니다.

php와 sku의 조합은 데카르트 곱을 사용하여 구현됩니다!

데카르트 곱을 사용하여 SKU의 조합을 얻을 수 있습니다. 세 가지 배열, 즉 색상 배열, 크기 배열 및 버전 배열이 있다고 가정합니다. 먼저 이를 2차원 배열로 결합한 다음 데카르트 곱 연산을 수행하여 최종적으로 SKU 배열을 얻을 수 있습니다.

샘플 코드는 다음과 같습니다.

`// 颜色数组
$colors = array('红色', '蓝色', '绿色');
// 尺寸数组
$sizes = array('S', 'M', 'L');
// 版本数组
$versions = array('V1', 'V2', 'V3');

// 组合数组
$combinations = array();
foreach ($colors as $color) {
    foreach ($sizes as $size) {
        foreach ($versions as $version) {
            $combinations[] = array('颜色' => $color, '尺寸' => $size, '版本' => $version);
        }
    }
}

// 笛卡尔积操作
function cartesianProduct($arr) {
    $result = array();
    foreach ($arr as $key => $values) {
        if (empty($values)) {
            continue;
        }
        if (empty($result)) {
            foreach ($values as $value) {
                $result[] = array($key => $value);
            }
        } else {
            $append = array();
            foreach ($result as &$product) {
                $product[$key] = array_shift($values);
                $copy = $product;
                foreach ($values as $item) {
                    $copy[$key] = $item;
                    $append[] = $copy;
                }
                $values = array_values($values);
            }
            $result = array_merge($result, $append);
        }
    }
    return $result;
}

// 得到sku数组
$skus = cartesianProduct($combinations);

// 输出sku数组
print_r($skus);`

출력 결과는 다음과 같습니다.

`Array
(
    [0] => Array
        (
            [颜色] => 红色
            [尺寸] => S
            [版本] => V1
        )

    [1] => Array
        (
            [颜色] => 红色
            [尺寸] => S
            [版本] => V2
        )

    [2] => Array
        (
            [颜色] => 红色
            [尺寸] => S
            [版本] => V3
        )

    [3] => Array
        (
            [颜色] => 红色
            [尺寸] => M
            [版本] => V1
        )

    [4] => Array
        (
            [颜色] => 红色
            [尺寸] => M
            [版本] => V2
        )

    [5] => Array
        (
            [颜色] => 红色
            [尺寸] => M
            [版本] => V3
        )

    [6] => Array
        (
            [颜色] => 红色
            [尺寸] => L
            [版本] => V1
        )

    [7] => Array
        (
            [颜色] => 红色
            [尺寸] =>
            ...

추천 학습: "PHP Video Tutorial"

위 내용은 php와 sku의 조합은 데카르트 곱을 사용하여 구현됩니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제