PHP提供array_merge()、array_merge_recursive()、“+”运算符、array_replace()及SPL迭代器五种数组合并方式:前者重索引数值键、覆盖同名字符串键;递归版合并同名键为数组;“+”保留左数组键值;array_replace()替换指定键值;SPL适用于大数据流式处理。

如果您在PHP开发中需要将多个数组连接成一个连续的数组,或合并具有相同键名的数组,PHP提供了多种内置函数来实现这一目标。以下是几种常用的操作方式:
array_merge()用于将一个或多个数组的单元合并起来,数值键名将被重新索引,字符串键名若重复则后面的值覆盖前面的值。
1、定义两个关联数组:$arr1 = ['a' => 1, 'b' => 2]; $arr2 = ['b' => 3, 'c' => 4];
2、调用array_merge函数:$result = array_merge($arr1, $arr2);
立即学习“PHP免费学习笔记(深入)”;
3、输出结果:print_r($result); 将显示 Array ( [a] => 1 [b] => 3 [c] => 4 )
该函数在遇到相同字符串键名时,不会覆盖而是将值合并为数组,适用于多维结构的深度合并。
1、定义嵌套数组:$arr1 = ['user' => ['name' => 'Alice']]; $arr2 = ['user' => ['age' => 30]];
2、执行递归合并:$result = array_merge_recursive($arr1, $arr2);
3、输出结果:print_r($result); 将显示 Array ( [user] => Array ( [name] => Alice [age] => 30 ) )
“+”运算符会保留左侧数组的键值对,仅将右侧数组中左侧不存在的键加入结果,不修改已有键的值。
1、声明两个数组:$left = ['x' => 10, 'y' => 20]; $right = ['y' => 99, 'z' => 30];
2、执行数组加法:$result = $left + $right;
3、输出结果:var_dump($result); 将显示 array(3) { ["x"]=> int(10) ["y"]=> int(20) ["z"]=> int(30) }
array_replace()用后续数组的值替换第一个数组中对应键的值,未出现的键保持不变,且不改变原始键顺序。
1、准备基础数组与替换数组:$base = ['a' => 1, 'b' => 2, 'c' => 3]; $replace = ['b' => 22, 'd' => 44];
2、执行替换操作:$result = array_replace($base, $replace);
3、输出结果:print_r($result); 将显示 Array ( [a] => 1 [b] => 22 [c] => 3 [d] => 44 )
当需处理大量数组或流式拼接时,可借助SPL迭代器避免内存一次性加载全部数据。
1、创建多个数组并放入生成器:function array_generator() { yield [1, 2]; yield [3, 4]; yield [5]; }
2、包装为IteratorIterator:$it = new IteratorIterator(array_generator());
3、遍历并逐个追加到结果数组:$merged = []; foreach ($it as $sub) { $merged = array_merge($merged, $sub); } 最终 $merged 等于 [1, 2, 3, 4, 5]
以上就是php文档的连接数组怎么用_php文档连接数组用法与合并技巧的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号