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

  • 相关阅读:
    预编译命令 #if DEBUG
    conda常用命令
    tensorflow 安装指南
    LocNET和池化理解
    同时安装cuda8和cuda9
    np.transpose
    python中List的slice用法
    书单
    训练工程
    linux 查看进程
  • 原文地址:https://www.cnblogs.com/wangshuazi/p/14251344.html
Copyright © 2011-2022 走看看