首页  >  文章  >  后端开发  >  php 不同数组相加

php 不同数组相加

WBOY
WBOY原创
2023-05-24 18:06:09408浏览

在 PHP 中,数组是一种非常灵活且常用的数据类型,它可以存储多个值(元素),并且这些值可以是任意数据类型。当我们需要对不同数组进行相加的操作时,需要了解不同的相加方式以及相应的注意事项。

  1. 使用 array_merge() 函数合并数组

array_merge() 函数可以将两个或多个数组合并成一个新数组,它将所有的输入数组中的元素放入一个新数组中,索引重新从 0 开始,并且可以保留原始数组的键名,不会覆盖相同键名的值。下面是一个示例:

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$array3 = array_merge($array1, $array2);
print_r($array3);

输出结果为:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)

需要注意的是,如果相同键名的值是数组,那么 array_merge() 函数将会递归合并它们,也就是将子数组合并到一起。如果键名是数字,合并后的结果会自动转换为数值索引数组。

  1. 使用 + 运算符合并数组

在 PHP 中,可以使用 + 运算符将两个数组合并为一个新数组,但与 array_merge() 函数不同的是,+ 运算符只会保留左侧数组中的键名和值,右侧数组中相同键名的值将被忽略。下面是一个示例:

$array1 = array('a', 'b', 'c');
$array2 = array('d' => 1, 'e', 'f');
$array3 = $array1 + $array2;
print_r($array3);

输出结果为:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [d] => 1
    [1] => e
    [2] => f
)

需要注意的是,如果数组的键名是字符串,那么 + 运算符会将它们当作关联数组来处理。如果左侧数组包含数字索引键名和字符串索引键名,那么右侧数组中的字符串索引键名将会被忽略。

  1. 使用 array_merge_recursive() 函数合并数组(递归合并)

如果相同键名的值是数组,那么使用 array_merge() 函数合并时只会覆盖前一个数组中对应键名的值,而不会递归合并子数组。如果需要递归合并相同键名的子数组,可以使用 array_merge_recursive() 函数。下面是一个示例:

$array1 = array('a' => array('b'), 'c');
$array2 = array('a' => array('d'), 'e');
$array3 = array_merge_recursive($array1, $array2);
print_r($array3);

输出结果为:

Array
(
    [a] => Array
        (
            [0] => b
            [1] => d
        )

    [0] => c
    [1] => e
)

需要注意的是,array_merge_recursive() 函数会将子数组合并到一起,并且将相同键名的值合并成一个数组。

  1. 使用 array_replace() 函数合并数组(替换合并)

array_replace() 函数可以将两个或多个数组合并成一个新数组,但与 array_merge() 函数不同的是,相同键名的值将会被后面的值替换而不是合并成一个数组。下面是一个示例:

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'd');
$array3 = array_replace($array1, $array2);
print_r($array3);

输出结果为:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

需要注意的是,array_replace() 函数只会替换键名存在的值,如果一个数组中存在的键名在另一个数组中不存在,那么它的值将保持不变。

综合来说,PHP 提供了多种合并数组的方法,我们可以根据实际需要来选择使用哪种方法。对于需要保留原始数组键名的情况,可以使用 array_merge() 函数;如果需要递归合并子数组,可以使用 array_merge_recursive() 函数;如果需要将相同键名的值替换而不是合并成一个数组,可以使用 array_replace() 函数。

以上是php 不同数组相加的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn