php 两个数组能组合多少种可能

$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

 using System;
using System.Linq;
using System.Collections.Generic;

public class Test
{
    public static void Main()
    {
        string[] a = { "zeng", "he", "b" };
        string[] b = { "ceng", "huo", "b" };
        string[] c = { "ceng", "hu", "b" };
        string[][] d = { a, b, c };
        List<string> r = new List<string>() { "" };
        List<string> r1 = new List<string>() { };
        for (int i = 0; i < d.Count(); i++)
        {
            foreach (string s in r)
            {
                foreach (string[] s1 in d)
                {
                    r1.Add(s + s1[i]);
                }
            }
            r = r1.ToList();
            r1.Clear();
        }
        foreach (string s in r.Distinct())
        {
            Console.WriteLine(s);
        }
    }
}

zengheb
zenghuob
zenghub
cengheb
cenghuob
cenghub

http://ideone.com/X5KFl7