2013-11-02 135 views
0

我有一個數組的所有變化,例如:獲取多維數組

Array 
(
    [2] => Array 
     (
      [3] => Yes 
      [4] => No 
     ) 
    [4] => Array 
     (
      [28] => Maroon 
      [29] => Red 
      [30] => Dark Blue 
      [31] => Grey 
      [32] => Pastel Blue 
      [33] => Yellow 
      [34] => Green 
     )  
    [7] => Array 
     (
      [265] => Var 1 
      [266] => Var 2 
      [267] => Var 3 
      [268] => Var 4 
     )  
    [87] => Array 
     (
      [1888] => 1800h x 450w x 450d (1845N) 
     )  
) 

我想獲得的陣列產品選擇的都是唯一的變化,如

Array 
(
    [2] => 3 
    [4] => 28 
    [7] => 265 
    [87] => 1888 
) 
Array 
(
    [2] => 3 
    [4] => 29 
    [7] => 265 
    [87] => 1888 
) 

等等。 我已經添加了所有需要添加的細節,但顯然我需要添加更多細節。

+2

這看起來像我的作業 –

+1

'我需要添加,但顯然我需要添加更多的細節。「 - 好的,那麼你的代碼在哪裏? –

+0

根本沒有作業,額外的文本是因爲stackoverflows規則。我無法發佈問題,直到我添加更多文本。 – Kudos

回答

0
<?php 
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; 
} 


$test = array(array('red', 'blue', 'green'),array('small', 'med', 'large'),array('car', 'truck', 'van')); 

$x = comb($test); 
print_r($x); 
?>