2016-05-13 185 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 
     ) 

)