これらのタイプのアルゴリズムの言語(つまり、これをグーグルで検索する方法)がよくわからないので、探しているものを示します。
私は3つの配列を持っています(ソース配列は同じ長さではありません):
$array1 = array('A', 'B', 'C', 'D');
$array2 = array('x', 'y', 'z');
$array3 = array('1', '2', '3');
これらの配列のすべての可能な組み合わせが必要です。
- 各ソース配列から取得される要素は1つだけです。
- 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で動作しますが、同様の言語または擬似コードはもちろん問題ありません。または、どの特定のタイプの順列/組み合わせアルゴリズムを検討する必要があるかについてのヒントを取得します。