PHP: No Nead дважды Замыкание массива

Привет, у меня есть функция для создания вариаций, но слишком много циклов

и это функция

function combine_array($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 = combine_array($b); foreach ($v as $v1){ foreach ($x as $v2) $out[] = array_merge(array($v1), $v2); } } return $out; } 

и это данные массива

 $data = array ( array ( 'Size', 'variation_id' => array ( 'S', 'M', ) ), array ( 'Length', 'variation_id' => array ( '14 Inches', '18 Inches', ) ) ); $check_var_id = function($value){ return $value["variation_id"]; }; $a2 = array_map($check_var_id, $data); $x = combine_array($a2); echo '<pre>'; print_r($x); echo '</pre>' 

и если я скомпилирую этот скрипт, я получаю такой результат

 Array ( [0] => Array ( [0] => S [1] => 14 Inches ) [1] => Array ( [0] => S [1] => 18 Inches ) [2] => Array ( [0] => M [1] => 14 Inches ) [3] => Array ( [0] => M [1] => 18 Inches ) [4] => Array ( [0] => 14 Inches [1] => S ) [5] => Array ( [0] => 14 Inches [1] => M ) [6] => Array ( [0] => 18 Inches [1] => S ) [7] => Array ( [0] => 18 Inches [1] => M ) ) 

Понимаете, есть

 [0] => Array ( [0] => S [1] => 14 Inches ) 

а также

 [4] => Array ( [0] => 14 Inches [1] => S ) 

Почему это снова зацикливается … кто-то, пожалуйста, помогите мне ..

Related of "PHP: No Nead дважды Замыкание массива"