2014-10-01 156 views
-2

所有可能的组合我坚持要算法:嵌套多阵列

编辑:固定阵列

输入数组:

$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

赞赏任何帮助,谢谢。

+0

这不是一个有效的数组。 – Daan 2014-10-01 11:14:58

+0

为什么?如果语法,它只是一个例子 – Injectios 2014-10-01 11:15:26

+0

这是很好的留下评论downvote – Injectios 2014-10-01 11:43:46

回答

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

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

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