嵌套多数组的所有可能组合

时间:2014-10-01 11:12:01

标签: php arrays permutation

我坚持使用以下算法:

编辑:固定数组

输入数组:

$array = array(
  'a',
  'b',
  array('c1', 'c2' ),
  array('d1', 'd2', array('d31','d32'))
);

我需要在每个嵌套数组中找到每个BOTTOM子项的所有可能组合。 结果是数组:

1) a, b, c1, d1, d31
2) a, b, c1, d1, d32
3) a, b, c1, d2, d31
4) a, b, c1, d2, d32

5) a, b, c2, d1, d31
6) a, b, c2, d1, d32
7) a, b, c2, d2, d31
8) a, b, c2, d2, d32

我已经在SO调查过大量类似的帖子,不幸的是他们都没有使用嵌套数组。

possible array combinations

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

$array = array(
    'a',
    'b',
    array('c1', 'c2'),
    array('d1', 'd2', array('d31','d32'))
);

$new_array = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));

这个新数组将给出数组中的所有元素。当它出现组合时,你应该更具体。关于如何在SO中获取排列或组合有很多答案。找到适合你的。希望这会有所帮助。