> 백엔드 개발 > PHP 튜토리얼 > PHP는 일괄적으로 SKU 조합을 생성하는 제품을 개발합니다(두 가지 방법)

PHP는 일괄적으로 SKU 조합을 생성하는 제품을 개발합니다(두 가지 방법)

藏色散人
풀어 주다: 2023-04-11 08:58:01
앞으로
7190명이 탐색했습니다.

최근에는 전자상거래 시스템을 개발하고 제품 모듈을 구현하고 있습니다. 추가, 삭제, 수정 및 점검은 불가피하지만 제품 측면은 js 호출 및 기타 효과의 효과에 더 가깝습니다. 더욱 중요한 것은 제품 SKU의 배치 생성 및 조합입니다.

시스템마다 요구 사항이 다릅니다. 다양한 사양을 추가한 후 SKU를 일괄 생성하려면 다음 요구 사항을 따르세요. [추천 학습: PHP 비디오 튜토리얼]

PHP는 일괄적으로 SKU 조합을 생성하는 제품을 개발합니다(두 가지 방법)

Rendering

PHP는 일괄적으로 SKU 조합을 생성하는 제품을 개발합니다(두 가지 방법)

SKU를 생성하는 방법은 모든 사양을 결합하는 것입니다. 이는 수학의 데카르트 곱입니다. PHP로 두 가지 메소드를 작성하고 기록하십시오.

첫 번째 방법은 문자열을 생성하는 것입니다

<?php

function Cartesian($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 . &#39;-&#39; . $sec;
            }
            $result = $temp;
        }
    }

    return $result;
}

//需要计算的数组
$data = array(
 array(&#39;白色&#39;,&#39;银色&#39;,&#39;玫瑰金&#39;),
 array(&#39;64G&#39;,&#39;128G&#39;),
 array(&#39;移动&#39;,&#39;电信&#39;,&#39;联通&#39;),
 array(&#39;国行&#39;,&#39;港版&#39;)
);

//打印结果
$result = Cartesian($data);
print_r($result);
?>
로그인 후 복사

실제 개발에서는 위의 2차원 배열만 생성하여 결합하면 됩니다.

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-联通-港版
)
로그인 후 복사

두 번째 방법은 배열 형식을 생성하는 것입니다

<?php

function Cartesian($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(&#39;白色&#39;,&#39;银色&#39;,&#39;玫瑰金&#39;),
 array(&#39;64G&#39;,&#39;128G&#39;),
 array(&#39;移动&#39;,&#39;电信&#39;,&#39;联通&#39;),
 array(&#39;国行&#39;,&#39;港版&#39;)
);

//打印结果
$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] => 港版
        )

)
로그인 후 복사

이 글은 재인쇄되었습니다. 원주소 : https://juejin.cn/post/7170889538343501838

위 내용은 PHP는 일괄적으로 SKU 조합을 생성하는 제품을 개발합니다(두 가지 방법)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿