我有一个空数组(作为示例)和许多多维数组,我想推送到这个数组上。然而,我希望每个多维数组的密钥都成为空数组的密钥
使用
$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函数)可以做到这一点,而不必用foreach读取数组键,然后将该键显式分配给具有类似的值的空数组
foreach ($arrayOne as $key => $value) {
$myEmptyArray[$key] = $value
}
因为我想在我的代码
您可以使用+
(并集)运算符,该运算符"返回附加到左侧数组的右侧数组;对于两个数组中都存在的键,将使用左侧数组中的元素,而忽略右侧数组中的匹配元素"。
$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"
}
}
*/
您可以简单地使用+
以您想要的方式组合这些数组:
$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>";
输出:
Array
(
[one] => Array
(
[a] => stuff
)
[two] => Array
(
[b] => stuff
)
[three] => Array
(
[c] => stuff
)
)