php 数据结构问题
PHPz
PHPz 2017-04-10 15:20:38
[PHP讨论组]

第一种:3个元素
第二种:2个元素
第三种:2个元素

怎样生成

0-0-0
0-0-1
0-1-0
0-1-1
1-0-0
1-0-1
1-1-0
1-1-1
2-0-0
2-0-1
2-1-0
2-1-1

这样的格式呢?

种类数和每个种类的元素个数可变,比如

第一种:2个元素
第二种:1个元素
第三种:2个元素
第四种:3个元素

就变成了

0-0-0-0
....
2-0-1-2

这样的格式呢?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
怪我咯

这不就是普通的取余么,普通的一个数组就行了,用一个自增整数反复取余就能列出所有组合了

http://3v4l.org/rnOU4

php<?php


print_r(every(array(3,2,2)));
print_r(every(array(1,2,3,4)));

function every($levels) {
    $results = array();
    $i = 0;

    while(true) {
        $current = $i;

        $result = array();
        foreach(array_reverse($levels) as $max) {
            array_unshift($result, $current % $max);
            $current = intval($current / $max);
        }

        if($current >= 1) {
            break;
        } else {
            $results[] = $result;
            $i++;
        }
    }

    return $results;
}
黄舟

业务环境没有写清同学~不明白你在说什么咯~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号