Объединение массивов

это как бы один из извращенных вариантов. Если есть что-то оптимальнее, прошу написать

естественно есть. Это из задач по комбинаторике, тебе нужно составить все комбинации чисел без перестановки. Вот реализация на рекурсивных функциях .
PHP:
$a = array(11, 12 , 13, 14);
$b = array(21, 22 , 23, 24);
$c = array(31, 32 , 33, 34);
$d = array(41, 42 , 43, 44);
 
print_r( combination(array(), array($a, $b, $c, $d) ));
 
 
function combination($source, $combinations_arr){
    $source_arr = array();
    $combinations_first = array_shift($combinations_arr);
    $count = sizeof( $combinations_arr);
   
    foreach($combinations_first as $c){
    $ns = $source;
    $ns[] = $c;
        if(!$count ){
          $source_arr [] = $ns; 
        }else{
 
          $source_arr = array_merge($source_arr, combination($ns, $combinations_arr));
        }
    }
    return $source_arr ;
   
}
 
Назад
Сверху