2012-08-02 84 views
1

我有這兩個數組,我需要組合兩個multidimensioal陣列,並設置一個作爲鍵

Array (
    [0] => Column 1 
    [1] => Column 2 
    [2] => Column 3 
) 
Array (
    [0] => Array (
      [0] => 111 
      [1] => 222 
      [2] => 333 
     ) 
    [1] => Array (
      [0] => 444 
      [1] => 555 
      [2] => 666 
     ) 
) 

組合成這個

Array (
    [0] => Array (
      [Column 1] => 111 
      [Column 2] => 222 
      [Column 3] => 333 
     ) 
    [1] => Array (
      [Column 1] => 444 
      [Column 2] => 555 
      [Column 3] => 666 
     ) 
) 

這是我和它的作品,但我我確信它可以以一種更簡單的方式完成:

$values = array(array(1,2,3), array(4,5,6)); 
$fields = array('Column 1','Column 2','Column 3'); 
$i = 0; 
$j = 0; 
$l = 0; 
$rows = array(); 
$columns = array(); 

foreach($values as $val) { 
    $rows[] = $val; 

    foreach ($fields as &$field) { 
     $columns[$j][$i] = $field; 
     $i++; 
    } 
    $i = 0; 
    $j++; 
} 

foreach($columns as $c){ 
    $result[] = array_combine($c,$rows[$l]); 
    $l++; 
} 

我想如果可能的話清理它。我有時會遇到與陣列的糾纏,而這真的與我的頭腦混爲一談。 :-)

回答

4

迭代數組的數組在每個數組傳遞給array_combine[docs],與鍵一起:

$result = array(); 

foreach($values as $key => $value) { 
    $result[$key] = array_combine($fields, $value); 
} 
1

我覺得array_combine()像你這樣是一個簡單的,你可以得到它。 PHP沒有任何東西的功能,但是你可以在任何需要的時候使它變成現實,所以對我來說看起來很好。有點奇怪,你可以在tho之前將值和關鍵字放入單獨的數組中,你可以簡單地對大數據集進行foreach,或者我可能太快地查看了代碼?