php 合并数组 array_merge,array_merge_recursive,array_values
在PHP中,合并数组有多种方法。根据你的需求,你可以选择最适合你的方法来合并数组。以下是一些常见的方法:
1. 使用+运算符
+运算符可以用来合并两个数组。如果两个数组有相同的字符串键名,则后面的数组的元素将覆盖前面的数组的元素。对于数字键名,则不会进行覆盖,而是保留后面的数组中的元素。
$array1 = array("a" => "apple", "b" => "banana");
$array2 = array("a" => "apricot", "c" => "cherry");
$result = $array1 + $array2;
print_r($result);
输出:
Array
(
[a] => apricot
[b] => banana
[c] => cherry
)
2. 使用array_merge()函数
array_merge()函数用于合并一个或多个数组。它会将一个或多个数组的元素合并后组成一个新的数组。如果输入的数组中有相同的字符串键名,则后面的数组的元素将覆盖前面的数组的元素。对于数字键名,则会重新索引,后面的数组的元素排在前面数组的元素之后。
$array1 = array("a" => "apple", "b" => "banana");
$array2 = array("a" => "apricot", "c" => "cherry");
$result = array_merge($array1, $array2);
print_r($result);
输出:
Array
(
[a] => apple
[b] => banana
[c] => cherry
)
3. 使用array_merge_recursive()函数
array_merge_recursive()函数与array_merge()类似,但它处理数组的方式不同。如果两个或更多数组中的元素有相同的字符串键名,则该键名所对应的值会组成一个数组,而不是简单地覆盖。这对于合并多维数组特别有用。
$array1 = array("a" => array("apple"), "b" => "banana");
$array2 = array("a" => array("apricot"), "c" => "cherry");
$result = array_merge_recursive($array1, $array2);
print_r($result);
输出:
Array
(
[a] => Array
(
[0] => apple
[1] => apricot
)
[b] => banana
[c] => cherry
)
4. 使用+运算符与array_values()结合(仅适用于数字键名)
如果你想要合并两个数组并且保留所有的数字键名,你可以先用+运算符合并数组,然后用array_values()函数重新索引数字键名。
$array1 = array("apple", "banana");
$array2 = array("apricot", "cherry");
$result = array_values($array1 + $array2); // 或者使用 $result = array_values(array_merge($array1, $array2)); 也可以达到同样的效果。
print_r($result);
输出:
Array
(
[0] => apple
[1] => banana
[2] => apricot // 注意这里是从0开始重新索引的,所以是2而不是3。如果使用array_merge则会得到3。
[3] => cherry // 同上,这里是3而不是4。使用array_merge会是4。
)
根据你的具体需求选择合适的方法。例如,如果你需要保留原始的数字索引并且不希望覆盖任何元素,使用+运算符后跟array_values()可能是一个好选择。如果你需要合并多维数组并且保留所有的值,使用array_merge_recursive()会更合适。对于大多数其他情况,array_merge()通常是一个好的通用选择。
版权属于:BLOG DEWEBSTUDIO 本文作者:狒狒
原文地址: http://blog.dewebstudio.com/?post=153
版权声明:转载时必须以链接形式注明原始出处及本声明。
继续浏览:
下一篇:PHP 8.3 的变化说明
发表评论