I değerleri içeren diziler aşağıdaki dizi vardır:
$array = array(
array('1', '2'),
array('a', 'b', 'c'),
array('x', 'y'),
);
Orada dizilerin herhangi bir sayı olabilir ve bir dizi değerleri herhangi bir sayı içerebilir. Ben şu anda bir değer her diziden alınan tüm kombinasyonlar üretecektir kodu bir parça var. örneğin:
1ax, 1ay, 1bx, 1by, 1cx, 1cy, 2ax, 2ay, 2bx, 2by, 2cx, 2cy
Ancak ne ben aslında istediğim tek bir değeri, her sütunda, yani oturur sadece kombinasyonlar olduğunu. B ve y ikinci sütunda oturup çünkü tüm üç değer 1, a ve x ilk sütunda oturup çünkü 1AX hiçbir iyi, 1by hiçbir iyidir. Bu nedenle, yukarıdaki örnekte sadece bu kombinasyonlar geçerli olacaktır:
1cy, 2cx
Ben aslında sadece tüm kombinasyonları oluşturmak ve daha sonra çatışmalar ile olanları filtrelemek için planlanan, fakat bu basitleştirilmiş örnekte olduğu gibi o gerçek bir uygulamada çelişkili olanlar da dahil olmak kombinasyonları (milyonlarca potansiyel vardır durumlar olacaksa olacak, ölçek değil .)
Herkes bu çözmek için daha iyi bir şekilde yardımcı olabilir misiniz? PHP çalışıyorum, ama açıkça mantığı gösteren herhangi bir kod örneği yararlı olacaktır.
Şimdiden teşekkürler.
Update:
Ben daha büyük bir veri kümesi karşı çalışmak çözümleri test ettik, bazı kriterler olsun, bu sonuçlar çok uzak:
$array = array(
array('1', '2', '3', '1', '2', '3', '1', '2', '3', '1', '2', '3', '1', '2', '3'),
array('a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'),
array('x', 'y', 'z', 'x', 'y', 'z', 'x', 'y', 'z'),
array('1', '2', '3', '1', '2', '3', '1', '2', '3'),
array('a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'),
array('x', 'y', 'z'),
);
Josh Davis 2nd Solution:
Combinations: 249480
Time: 0.3180251121521 secs
Memory Usage: 22.012168884277 mb
Peak Memory Usage: 22.03059387207 mb
Josh Davis:
Combinations: 249480
Time: 1.1172790527344 secs
Memory Usage: 22.004837036133 mb
Peak Memory Usage: 22.017387390137 mb
Tom Haigh:
Combinations: 249480
Time: 5.7098741531372 secs
Memory Usage: 39.145843505859 mb
Peak Memory Usage: 39.145843505859 mb