盘点php合并数组的方式

爱喝马黛茶的安东尼 · · 887 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1、arrary_merge

示例代码:

$arr1= array(1, 2, 3, 4, 5);

$arr2= array(1, 2, 6, 7, 8, 9, 10);

$result1= array_merge($arr1, $arr2);

$arr3= array("name"=> "itbsl", "age"=> 13, "sex"=> "Male");

$arr4= array("name"=> "火龙果", "age"=> 13, "sex"=> "Male");

$result2= array_merge($arr3, $arr4);

echo"<pre>";

var_dump($result1);

var_dump($result2);

运行上面的代码,输出结果如下图所示:

普通数组合并时,会把第二个数组放到第一个数组后面,拼接后返回。

但是对于键值对的数组来说,如果有相同的键,那么第二个数组会覆盖第一个数组相同的键所对应的值。

2、通过“+”合并

示例代码:

$arr1= array(1, 2, 3, 4, 5);

$arr2= array(1, 2, 6, 7, 8, 9, 10);

$result1= $arr1+ $arr2;

$arr3= array("name"=> "itbsl", "age"=> 13, "sex"=> "Male");

$arr4= array("name"=> "火龙果", "age"=> 13, "sex"=> "Male", "id"=> "411521");

$result2= $arr3+ $arr4;

echo"<pre>";

var_dump($result1);

var_dump($result2);

运行上面的代码,输出结果如下图所示:

可以看到,对于用"+"来合并两个数组而言,无论是普通数组还是键值对型数组,只要下标相同或者键相同,都是前者覆盖后者。这一点需要注意。

3、连接两个数组

array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。

示例代码:

$arr1= array("A","B","C","D");

$arr2= array("paul","itbsl","Golang","PHP");

$result= array_combine($arr1,$arr2);

echo'<pre>';

var_dump($result);

运行上面的代码,输出结果如下图所示:

注意:如果需要合并数组成为上面的形式,那么合并的两个数组的长度必须相等,也就是count($arr1) == count($arr2),并且不能为空。

4、递归追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。

示例代码:

$arr3= array("name"=> "itbsl", "age"=> 13, "sex"=> "Male");

$arr4= array("name"=> "火龙果", "age"=> 13, "sex"=> "Male");

$result2= array_merge_recursive($arr3, $arr4);

echo"<pre>";

var_dump($result2);

运行上面的代码,输出结果如下图所示:

本文转自:https://www.php.cn/php-ask-429482.html


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:爱喝马黛茶的安东尼

查看原文:盘点php合并数组的方式

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

887 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传