Witam,
problem mam taki:
mam sobie tablicę:
$a=array(array(1,2,3),array('aaa','bbb')
z niej muszę utworzyć tak kombinację aby wygenerować tablice zawerającą pary elementów z pierwszej i drugiej tablicy, dla każdej możliwości, tzn wynik powinien być nastepujący:
array(array(1,'aaa'),array(2,'aaa'),array(3,'aaa'),array(1,'bbb'),array(2,'bbb'),array(3,'bbb'));
liczba elementów może byc różna w tablicach, jak i może być różna liczba tablic, ale zawsze ma być tak żeby wartości z pierwszej tablicy były na 1 miejscu, drugiej na drugim itp.
Obecnie znalazłem taki kod:
function comb($a){
$out = array();
if (count($a) == 1) {
$x = array_shift($a);
foreach ($x as $v) $out[] = array($v);
return $out;
}
foreach ($a as $k => $v){
$b = $a;
unset($b[$k]);
$x = comb($b);
foreach ($v as $v1){
foreach ($x As $v2)
$out[] = array_merge(array($v1), $v2);
}
}
return $out;
}
Ale on niestety generuje wszystkie możliwe mutacje, nie zważając na pozycję, a nie wiem jak to zmienić.