> 백엔드 개발 > PHP 튜토리얼 > php 数据结构问题

php 数据结构问题

WBOY
풀어 주다: 2016-06-06 20:38:20
원래의
1028명이 탐색했습니다.

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

怎样生成

<code>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
</code>
로그인 후 복사
로그인 후 복사

这样的格式呢?

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

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

就变成了

<code>0-0-0-0
....
2-0-1-2
</code>
로그인 후 복사
로그인 후 복사

这样的格式呢?

回复内容:

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

怎样生成

<code>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
</code>
로그인 후 복사
로그인 후 복사

这样的格式呢?

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

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

就变成了

<code>0-0-0-0
....
2-0-1-2
</code>
로그인 후 복사
로그인 후 복사

这样的格式呢?

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

http://3v4l.org/rnOU4

<code>php</code><code><?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;
}
</code>
로그인 후 복사

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿