如何将值从一个数组分配到另一个数组?例如:
//array with empty value
$targetArray = array(
'a' => '',
'b' => '',
'c' => '',
'd' => ''
);
// array with non-empty values, but might be missing keys from the target array
$sourceArray = array(
'a'=>'a',
'c'=>'c',
'd'=>'d'
);
我希望看到的结果如下:
$resultArray = array(
'a'=>'a',
'b'=>'',
'c'=>'c',
'd'=>'d'
);
我认为您要查找的函数是array_merge。
$resultArray = array_merge($targetArray,$sourceArray);
使用array_merge:
$merged = array_merge($targetArray, $sourceArray);
// will result array('a'=>'a','b'=>'','c'=>'c','d'=>'d');
使用array_merge()
:
$targetArray = array('a'=>'','b'=>'','c'=>'','d'=>'');
$sourceArray = array('a'=>'a','c'=>'c','d'=>'d');
$result = array_merge( $targetArray, $sourceArray);
该输出:
array(4) {
["a"]=>
string(1) "a"
["b"]=>
string(0) ""
["c"]=>
string(1) "c"
["d"]=>
string(1) "d"
}
也许这个任务的一个更直观/指示性的函数是array_replace()
。它在关联数组上的性能与array_merge()
相同。(演示)
var_export(
array_replace($targetArray, $sourceArray)
);
输出:
array (
'a' => 'a',
'b' => '',
'c' => 'c',
'd' => 'd',
)
联合运算符可以获得类似但不完全相同的结果,但请注意,它的输入参数顺序相反,输出数组的键来自$targetArray
,然后是$sourceArray
。
var_export($sourceArray + $targetArray);
输出:
array (
'a' => 'a',
'c' => 'c',
'd' => 'd',
'b' => '',
)