簡體   English   中英

PHP數組操作自定義

[英]Php array manipulation custom

我想以這種格式獲取“下面的對象”,我該如何得到這個?我想要一些人來指導我。

此方法用於根據產品的選項來生成多種變體。

我曾在數組循環中嘗試過靜態變量,但最終卻缺少2-4個變體

我需要的示例輸出

Yellow, M, 1Gb
Yellow, M, 2GB
Yellow, S, 1GB
Yellow, S, 2GB
Yellow, L, 1GB
Yellow, L, 2GB


Green, M, 1Gb
Green, M, 2GB
Green, S, 1GB
Green, S, 2GB
Green, L, 1GB
Green, L, 2GB

對象數據

[
    [
        {
            "id": 1,
            "variantID": 1,
            "option_name": "Yellow",
            "imageID": 1
        },
        {
            "id": 2,
            "variantID": 1,
            "option_name": "Green",
            "imageID": 2
        }
    ],
    [
        {
            "id": 3,
            "variantID": 2,
            "option_name": "M"
        },
        {
            "id": 4,
            "variantID": 2,
            "option_name": "S"
        },
        {
            "id": 5,
            "variantID": 2,
            "option_name": "L"
        }
    ],
    [
        {
            "id": 5,
            "variantID": 3,
            "option_name": "1GB"
        },
        {
            "id": 6,
            "variantID": 3,
            "option_name": "2GB"
        }
    ]
]

對不起:英語不好

插件: https//github.com/bpolaszek/cartesian-product

use function BenTools\CartesianProduct\cartesian_product;

$data = [
    'color' => [
        'yellow',
        'green'
    ],
    'size' => [
        'm',
        's',
        'l',
    ],
    'ram' => [
    '1 gb',
    '2 gb',
]
];

foreach (cartesian_product($data) as $combination) {
    printf('color: %s - size: %s - ram: %s' . PHP_EOL, $combination['color'], $combination['size'],$combination['ram']);
}

輸出:

color: yellow - size: m - ram: 1 gb
color: yellow - size: m - ram: 2 gb
color: yellow - size: s - ram: 1 gb
color: yellow - size: s - ram: 2 gb
color: yellow - size: l - ram: 1 gb
color: yellow - size: l - ram: 2 gb
color: green - size: m - ram: 1 gb
color: green - size: m - ram: 2 gb
color: green - size: s - ram: 1 gb
color: green - size: s - ram: 2 gb
color: green - size: l - ram: 1 gb
color: green - size: l - ram: 2 gb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM