zoukankan      html  css  js  c++  java
  • PHP 求多个数组的笛卡尔积,适用于求商品规格组合【原创】

    $a = ['黑','白','红','绿'];
    $b = ['大','小'];
    $c = ['A','B','C','D'];
    $count_a = count($a);
    $count_b = count($b);
    $count_c = count($c);
    $total = $count_a * $count_b * $count_c; # 一共有多少种情况
    $arr = [];
    for($i = 0; $i < $total; $i++){
    $pos_c = $i % $count_c; # 得到 当前 $c 下标
    $res = floor($i / $count_c);
    $pos_b = $res % $count_b; # 得到 当前 $b 下标
    $res = floor($res / $count_b);
    $pos_a = $res % $count_a; #得到 当前 $a 下标
    # $arr[$i] = [$a[$pos_a],$b[$pos_b],$c[$pos_c]];
    echo $a[$pos_a] . ','. $b[$pos_b] . ',' . $c[$pos_c] . " ";
    }

    运行结果如下

    D:phpstudy_proExtensionsphpphp7.3.4ntsphp.exe D:Brush2020-01-071.php
    黑,大,A
    黑,大,B
    黑,大,C
    黑,大,D
    黑,小,A
    黑,小,B
    黑,小,C
    黑,小,D
    白,大,A
    白,大,B
    白,大,C
    白,大,D
    白,小,A
    白,小,B
    白,小,C
    白,小,D
    红,大,A
    红,大,B
    红,大,C
    红,大,D
    红,小,A
    红,小,B
    红,小,C
    红,小,D
    绿,大,A
    绿,大,B
    绿,大,C
    绿,大,D
    绿,小,A
    绿,小,B
    绿,小,C
    绿,小,D

    进程已结束,退出代码0

  • 相关阅读:
    xpath的几个常用规则
    xpath定位不到原因浅析
    这一代人得学习
    scrapy之Request对象
    cookie字段属性解析
    selenium中get_cookies()和add_cookie()的用法
    python中生成器generator
    swagger demo code
    ctrip-apollo
    eclipse 快捷键使用日志
  • 原文地址:https://www.cnblogs.com/wangshuazi/p/14251344.html
Copyright © 2011-2022 走看看