私はかなりのアルゴリズム(すなわち、これをGoogleにどのように)、これらのタイプの言語を知らないので、私はちょうど私が探しているものを説明します:(順序を維持しながら)デカルト/組み合わせアルゴリズム
$array1 = array('A', 'B', 'C', 'D');
$array2 = array('x', 'y', 'z');
$array3 = array('1', '2', '3');
Iは、これらの配列のすべての可能な組み合わせたい:各ソース・アレイから
- 1個以下の要素が取られるが、私は3つのアレイを(ソース列が等しくない長さである)を有します。
- array1、array2、array3の順番は決して壊れません(
ABC
はいつもxyz
の前に来て、いつも123
の前に来ます)。
だから、結果は次のようになります。
array(
array('A', 'x', '1'),
array('A', 'x', '2'),
array('A', 'x', '3'),
array('A', 'y', '1'),
// etc ...
// But I also need all the partial sets, as long as the rule about
// ordering isn't broken i.e.:
array('B'),
array('B', 'x'),
array('B', 'x', '1'),
array('x'),
array('x', '1'),
array('1'),
);
結果の順序は私には関係ありません。
phpで作業しますが、類似の言語または疑似コードは当然です。または、私はちょうど私が見ていなければならない順列/組み合わせアルゴリズムの特定のタイプについてのヒントを取るでしょう。
ヒント:それぞれの配列にヌル( '')エントリを追加し、ルール#1を「*正確には*各配列から1つの要素」に変更します。 ***今は***そのデカルト製品です。 – RBarryYoung