PHP三种数组合并方式区别示例

2020-6-24 dingshangchao php开发

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));

运行结果:


网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2024 www.elight.cn, All Rights Reserved