📅  最后修改于: 2023-12-03 15:38:11.849000             🧑  作者: Mango
在PHP中,我们经常需要将两个数组合并成一个数组。但是,当合并数组时,有时需要保留原始数组的键。这就需要使用PHP中的一些函数来合并数组,并保持原始键。
PHP中,最常用的合并数组函数是array_merge()
。此函数将两个或更多数组合并为一个数组,并返回该数组。但是,当使用此函数时,原始数组的键将被重建并通过数字索引来引用它们的元素。
$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('d' => 4, 'e' => 5, 'f' => 6);
$result = array_merge($array1, $array2);
print_r($result);
/* 输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
*/
如上所示,当array_merge()
合并数组时,原始数组的键被丢失,并被重新分配了数字索引。
如果要保留原始数组的键,可以使用array_replace()
函数。此函数将一个数组替换为另一个数组,并返回该替换后的数组。此函数将保留原始数组的键,并用新的数组值覆盖原始数组中的值。
$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('b' => 4, 'c' => 5, 'd' => 6);
$result = array_replace($array1, $array2);
print_r($result);
/* 输出:
Array
(
[a] => 1
[b] => 4
[c] => 5
[d] => 6
)
*/
如上所示,使用array_replace()
函数合并数组时,原始数组的键被保留,并用新数组中的值替换原始数组中的值。
array_merge_recursive()
函数也可以用于合并数组,并保留原始数组的键。此函数将在深度上递归地合并两个或更多数组,并返回新的数组。此函数将保留原始数组的键,并将它们的值合并成多维数组。
$array1 = array('color' => array('favorite' => 'red'), 5);
$array2 = array(10, 'color' => array('favorite' => 'green', 'blue'));
$result = array_merge_recursive($array1, $array2);
print_r($result);
/* 输出:
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)
*/
如上所示,使用array_merge_recursive()
函数合并数组时,原始数组的键被保留,并合并成多维数组。
在PHP中,有多种方法可以合并数组并保留原始数组的键。使用array_merge()
函数,可以将两个或更多数组合并成一个数组,并重建键。使用array_replace()
函数,可以合并并保留原始数组的键。如果需要递归地合并多个数组,并将原始键保留为多维数组,则可以使用array_merge_recursive()
函数。