php合并数组的几种方式 并简述其特点
2024-01-03 10:33:20
目前工作中接触到的PHP数组合并方式主要有三种:
1、+操作符
2、array_merge()
3、array_merge_recursive()
它们的区别主要体现在对于相同键名(数字键名、字符串键名)的处理方式,
一 相同字符串键
<?php
$arrFirst = [
"first_key" => 1,
"second_key" => 1,
"third_key" => 1,
];
$arrSecond = [
"first_key" => 2,
"second_key" => 2,
"fourth_key" => 2,
];
//对于重复的字符串键,array_merge后,后面数组的键值会覆盖前面的
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));
//对于重复的字符串键,+操作后,前面数组的键值会覆盖后面的
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));
//对于重复的字符串键,array_merge_recursive后,相同键名的键值会被合并到同一数组中(会递归)
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));
运行结果:
二 相同数字键
<?php
$arrFirst = [
111 => "first",
222 => "first",
"first" //会指定默认的数字键223
];
$arrSecond = [
111 => "second",
333 => "second",
"second" //会指定默认的数字键334
];
//对于重复的数字键,+操作后,前面数组的键值会覆盖后面的,保留之前数字键
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));
//对于重复的数字键,array_merge后,重排数字键,不会覆盖
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));
//对于重复的数字键,array_merge_recursive后,重排数字键,不会覆盖
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));
运行结果
文章来源:https://blog.csdn.net/nihao123456789222/article/details/135356536
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!