Heim > Backend-Entwicklung > PHP-Tutorial > php 数据结构问题

php 数据结构问题

WBOY
Freigeben: 2016-06-06 20:38:20
Original
1030 Leute haben es durchsucht

第一种: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>
Nach dem Login kopieren
Nach dem Login kopieren

这样的格式呢?

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

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

就变成了

<code>0-0-0-0
....
2-0-1-2
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样的格式呢?

回复内容:

第一种: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>
Nach dem Login kopieren
Nach dem Login kopieren

这样的格式呢?

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

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

就变成了

<code>0-0-0-0
....
2-0-1-2
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样的格式呢?

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

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>
Nach dem Login kopieren

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

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage