php数组相加 数组合并 array_merge() 函数

zblog2年前zblog问题解答110

在 PHP 中,当你说“数组相加”时,这通常指的是将两个数组合并成一个新的数组。但是,因为数组可以是索引数组(数字键)或关联数组(字符串键),所以合并数组的方法会有所不同。

以下是几种合并数组的常见方法:

  1. 使用 + 运算符(仅适用于数字索引数组,且不会覆盖重复的键):

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = $array1 + $array2; 

// 结果为 [1, 2, 3, 4, 5, 6],但只合并到 $array1 的长度

注意:+ 运算符的行为是,如果存在相同的键,则只保留第一个数组中的值。而且,如果 $array2 的长度大于 $array1,那么超出 $array1 长度的部分将被忽略。

  1. 使用 array_merge() 函数(适用于数字索引和关联数组,且会覆盖重复的键):

image.png

php复制代码

$array1 = ['a' => 1, 'b' => 2];

$array2 = ['b' => 3, 'c' => 4];

$result = array_merge($array1, $array2); // 结果为 ['a' => 1, 'b' => 3, 'c' => 4]  



// 对于数字索引数组  

$array1 = [1, 2, 3];

$array2 = [4, 5, 6];

$result = array_merge($array1, $array2); // 结果为 [1, 2, 3, 4, 5, 6],键被重新索引

array_merge() 函数会合并两个或多个数组为一个数组,如果输入数组中有相同的字符串键名,则后面的值将覆盖前面的值;如果数组是数字索引的,则后面的值将不会覆盖原来的值,而是附加到后面。

  1. 使用 array_merge_recursive() 函数(对于关联数组,它会将具有相同键的值合并为一个数组):

php复制代码$array1 = ['a' => 1, 'b' => 2];$array2 = ['b' => [3, 4], 'c' => 5];$result = array_merge_recursive($array1, $array2); // 结果为 ['a' => 1, 'b' => [2, 3, 4], 'c' => 5]

注意:这里 'b' 键的值被合并为一个数组 [2, 3, 4],这并不是通常期望的结果。

  1. 使用 ... 运算符(PHP 5.6+)(与 array_merge() 功能相似):

    image.png




php复制代码

$array1 = [1, 2, 3];

$array2 = [4, 5, 6];

$result = [...$array1, ...$array2]; // 结果为 [1, 2, 3, 4, 5, 6],键被重新索引  



$array1 = ['a' => 1, 'b' => 2];

$array2 = ['b' => 3, 'c' => 4];

$result = [...$array1, ...$array2]; // 注意:这不会按期望合并关联数组,而是会创建新的数字索引数组



对于关联数组,使用 ... 运算符可能不会得到你期望的结果,因为它不会处理重复的键,而是将它们作为新元素添加到数组中(并创建新的数字索引)。

根据你的具体需求,选择适当的合并方法。如果你只是想简单地合并两个数组并保留所有值(不考虑键的重复),array_merge() 可能是最常用的方法。


相关文章

php require_once 包含文件不显示不执行不报错 就是空白,原因是 函数名字重复了。。。

php require_once 包含文件不显示不执行不报错 就是空白,原因是 函数名字重复了。。。每个插件 以插件名字 命名函数  或者以 插件名字开头的 类的静态函数 组织函数...

python并行 pycharm并行运行 允许多个实例

python并行 pycharm并行运行 允许多个实例

选中就允许一个py文件 多个实例并行运行,关闭就不允许多个实例运行,每个python文件只能一个实例运行。...

宝塔续签证书 SSH证书 续签Let's Encrypt证书

宝塔续签证书 SSH证书 续签Let's Encrypt证书

续签Let's Encrypt证书 shell 脚本/www/server/panel/pyenv/bin/python3 -u /www/server/panel/class/acme_v2...

php数组长度 count() 函数

在 PHP 中,你可以使用 count() 函数来获取数组的长度(或称为元素的数量)。count() 函数返回数组中元素的数量。下面是一个简单的示例: &nbs...

linux伪静态 (大括号转义)

linux伪静态 (大括号转义)

大括号转义问题: Nginx配置文件中,大括号{}默认用于配置块(如server{}),直接用在正则表达式中会被误解析。 解决方案:用单引号包裹正则表达式(推荐),或转义大括号(但转义可能不生效,...

zblog的ShowHint()函数,(后台页面顶部)输出函数,zblog提示框

zblog的ShowHint()函数,(后台页面顶部)输出函数,zblog提示框

zblog的ShowHint()函数,(后台页面顶部)输出函数,是用在后台的函数。功能是,操作提示。如图:运行效果如下,1秒后自动消失:效果如下:在插件管理页面,写测试语句:<?php ...