$arr_1 = array('zeng','he','b’);
$arr_2 = array('ceng','huo','b');
$arr_3 = array('ceng','hu','b');
希望结果:
组合后的数组元素顺序不变:
$array = array('zengheb','zenghuob','zenghub','cengheb','cenghuob','cenghub');
N多个$arr,组成一个array
$arr_1 = array('zeng','he','b’);
$arr_2 = array('ceng','huo','b');
$arr_3 = array('ceng','hu','b');
希望结果:
组合后的数组元素顺序不变:
$array = array('zengheb','zenghuob','zenghub','cengheb','cenghuob','cenghub');
N多个$arr,组成一个array
用C#写了一个,作为思路,你参考下,用递归。
using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Foo(IEnumerable<string> seed, string[] a, string[] b, int x, int y)
{
if (a.Count() > x)
{
Foo(seed.Concat(new string[] { a[x] }), a, b, x + 1, y);
}
if (b.Count() > y)
{
Foo(seed.Concat(new string[] { b[y] }), a, b, x, y + 1);
}
if (a.Count() == x && b.Count() == y) Console.WriteLine(string.Join(",", seed));
}
public static void Main()
{
string[] a = { "a", "b", "c" };
string[] b = { "d", "e", "f" };
Foo(new string[] { }, a, b, 0, 0);
}
}
a,b,c,d,e,f
a,b,d,c,e,f
a,b,d,e,c,f
a,b,d,e,f,c
a,d,b,c,e,f
a,d,b,e,c,f
a,d,b,e,f,c
a,d,e,b,c,f
a,d,e,b,f,c
a,d,e,f,b,c
d,a,b,c,e,f
d,a,b,e,c,f
d,a,b,e,f,c
d,a,e,b,c,f
d,a,e,b,f,c
d,a,e,f,b,c
d,e,a,b,c,f
d,e,a,b,f,c
d,e,a,f,b,c
d,e,f,a,b,c