求商品规则笛卡尔积算法

发布于 2022-09-12 02:36:21 字数 2644 浏览 30 评论 0

题目描述


$arr = [
    [
        "title"=>"颜色",
        "value"=>["黑色", "白色"]
    ],
    [
        "title"=>"尺码",
        "value"=>["S", "M","L"]
    ],
    [
        "title"=>"长度",
        "value"=>["9分裤", "长裤"]
    ]
];

如何才能让title标题加入分类中,每行一个规则

你期待的结果是什么?实际看到的错误信息又是什么?

我期待的结果是

array(12) {
  [0]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "S"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [1]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "S"
      ["长度"]=>
      string(6) "长裤"
    }
  }
  [2]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "M"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [3]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "M"
      ["长度"]=>
      string(6) "长裤"
    }
  }
  [4]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "L"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [5]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "黑色"
      ["尺码"]=>
      string(1) "L"
      ["长度"]=>
      string(6) "长裤"
    }
  }
  [6]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "S"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [7]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "S"
      ["长度"]=>
      string(6) "长裤"
    }
  }
  [8]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "M"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [9]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "M"
      ["长度"]=>
      string(6) "长裤"
    }
  }
  [10]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "L"
      ["长度"]=>
      string(7) "9分裤"
    }
  }
  [11]=>
  array(1) {
    ["value"]=>
    array(3) {
      ["颜色"]=>
      string(6) "白色"
      ["尺码"]=>
      string(1) "L"
      ["长度"]=>
      string(6) "长裤"
    }
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薯片软お妹 2022-09-19 02:36:21
function func($sets)
{
    if (!$sets) return [];
    $first = array_shift($sets);
    $count = count($sets);
    for ($i = 0; $i < $count; $i++) {
        $tmp = [];
        if($i){
            foreach ($first as $f) {
                foreach ($sets[$i]['value'] as $set) {
                    $f[$sets[$i]['title']] = $set;
                    $tmp[] = $f;
                }
            }
        }else{
            foreach ($first['value'] as $f) {
                foreach ($sets[$i]['value'] as $set) {
                    $tmp[] = [
                        $first['title'] => $f,
                        $sets[$i]['title']=> $set
                    ];
                }
            }
        }
        $first = $tmp;
    }
    return $first;
}

$arr1 = [
    [
        "title"=>"颜色",
        "value"=>["黑色", "白色"]
    ],
    [
        "title"=>"尺码",
        "value"=>["S", "M","L"]
    ],
    [
        "title"=>"长度",
        "value"=>["9分裤", "长裤"]
    ],
    [
        "title"=>"性别",
        "value"=>["男", "女"]
    ]
];
$c = func($arr1);
print_r($c);
Array
(
    [0] => Array
        (
            [颜色] => 黑色
            [尺码] => S
            [长度] => 9分裤
            [性别] => 男
        )

    [1] => Array
        (
            [颜色] => 黑色
            [尺码] => S
            [长度] => 9分裤
            [性别] => 女
        )

    [2] => Array
        (
            [颜色] => 黑色
            [尺码] => S
            [长度] => 长裤
            [性别] => 男
        )

    [3] => Array
        (
            [颜色] => 黑色
            [尺码] => S
            [长度] => 长裤
            [性别] => 女
        )

    [4] => Array
        (
            [颜色] => 黑色
            [尺码] => M
            [长度] => 9分裤
            [性别] => 男
        )

    [5] => Array
        (
            [颜色] => 黑色
            [尺码] => M
            [长度] => 9分裤
            [性别] => 女
        )

    [6] => Array
        (
            [颜色] => 黑色
            [尺码] => M
            [长度] => 长裤
            [性别] => 男
        )

.......

独留℉清风醉 2022-09-19 02:36:21

没看明白,我写过一个筛选的前端效果:https://bestime.github.io/too...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文