2016-05-13 183 views
1

我有一個空數組(作爲示例)和一些我想推入該數組的多維數組。不過,我想每一個多維數組的鑰匙,成爲空數組將多維數組作爲另一個數組上的鍵

的主要使用

$myEmptyArray[] = $arrayOne; 
$myEmptyArray[] = $arrayTwo; 
$myEmptyArray[] = $arrayThree; 

我得到

[ 
    0 => ['one' => ['a' => 'stuff']], 
    1 => ['two' => ['b' => 'stuff']], 
    2 => ['three' => ['c' => 'stuff']] 
] 

我寧願

[ 
    'one' => ['a' => 'stuff'], 
    'two' => ['b' => 'stuff'], 
    'three' => ['c' => 'stuff'] 
] 

什麼是一個整潔而緊湊的方式(一個班輪或本地PHP功能)來做到這一點,而不必閱讀數組ke Ÿ在foreach,然後明確指定該鍵爲空數組與值類似

foreach ($arrayOne as $key => $value) { 
    $myEmptyArray[$key] = $value 
} 

正如我將要在很多地方在我的代碼中使用此

+1

豈不'array_merge'做的工作還是出具有可變參數的函數,你的foreach循環計數,並使用它,只要你は? NT? –

回答

0

可以使用+ (union)算子「返回附加到左側數組的右側數組;對於同時存在於兩個陣列的鍵,從左側數組中的元素將被使用,並且從右側陣列的匹配元素將被忽略。」

$array = []; 
$array += ['one' => ['a' => 'stuff']]; 
$array += ['two' => ['b' => 'stuff']]; 
$array += ['three' => ['b' => 'stuff']]; 
var_dump($array); 
/* 
array(3) { 
    'one' => 
    array(1) { 
    'a' => 
    string(5) "stuff" 
    } 
    'two' => 
    array(1) { 
    'b' => 
    string(5) "stuff" 
    } 
    'three' => 
    array(1) { 
    'b' => 
    string(5) "stuff" 
    } 
} 
*/ 
0

可以簡單地使用+結合那些數組中你想要的方式:

$arrayOne = array('one' => array('a' => 'stuff')); 
$arrayTwo = array('two' => array('b' => 'stuff')); 
$arrayThree = array('three' => array('c' => 'stuff')); 

$myEmptyArray = array(); 
$myEmptyArray += $arrayOne; 
$myEmptyArray += $arrayTwo; 
$myEmptyArray += $arrayThree; 

echo "<pre>"; print_r($myEmptyArray); echo "</pre>"; 

OUTPUT:

Array 
(
    [one] => Array 
     (
      [a] => stuff 
     ) 

    [two] => Array 
     (
      [b] => stuff 
     ) 

    [three] => Array 
     (
      [c] => stuff 
     ) 

)