<p>在PHP中合并两个或多个数组有:运算符“+”,array_merge()函数,array_merge_recursive()函数,下面就来具体介绍一下如何合并数组,希望对大家有所帮助。</p><p>这里为了方便大家查看演示效果,我们分别定义两组数组:</p><pre class="brush:php;toolbar:false">// 数字键名 $array1 = [ 1=>'苹果', 2=>'西瓜', 3=>'橙子', ]; $array2 = [ 2=>'石榴', 3=>'梨子', 4=>'香蕉', ]; // 字符串键名 $array3 = [ 'a' => '冬瓜', 'b' => '白菜', 'c' => '番茄', ]; $array4 = [ 'b' => '土豆', 'c' => '南瓜', 'e' => '辣椒', ];</pre><p><strong>PHP数组合并第一种方式:+号方式</strong></p><p>规则:当两个数组的键名是数字键名或者字符串键名可以直接 +,$c = $a + $b,在$a后追加($b在$a中不存在的键名)键名和值。</p><p>例:</p><pre class="brush:php;toolbar:false">echo "<pre>"; print_r($array1+$array2); print_r($array3+$array4);</pre><p>打印结果如下:<br/></p><pre class="brush:html;toolbar:false">Array ( [1] => 苹果 [2] => 西瓜 [3] => 橙子 [4] => 香蕉 ) Array ( [a] => 冬瓜 [b] => 白菜 [c] => 番茄 [e] => 辣椒 )</pre><p style="white-space: normal;">注意:</p><p style="white-space: normal;">1、不覆盖,只是追加不存在的键名和对应的值。</p><p style="white-space: normal;">2、键名不重新索引。</p><p style="white-space: normal;">3、无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回。</p><p><strong>PHP数组合并第二种方式:</strong><a href="/manual/php/func-array_merge.html" target="_blank"><strong>array_merge()</strong></a></p><p>规则:array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。 </p><p><strong style="white-space: normal;"></strong>例:</p><pre class="brush:php;toolbar:false">echo "<pre>"; print_r(array_merge($array1,$array2)); print_r(array_merge($array3,$array4));</pre><p>打印结果如下:</p><pre class="brush:html;toolbar:false;">Array ( [0] => 苹果 [1] => 西瓜 [2] => 橙子 [3] => 石榴 [4] => 梨子 [5] => 香蕉 ) Array ( [a] => 冬瓜 [b] => 土豆 [c] => 南瓜 [e] => 辣椒 )</pre><p>注意:</p><p>1、数字索引,不会覆盖,值合并后,键名会连续方式重新索引</p><p>2、字符串键名,则该键名后面的值将覆盖前一个值</p><p><strong style="white-space: normal;">PHP数组合并第三种方式:<a href="/manual/php/func-array_merge_recursive.html" target="_blank">array_merge_recursive()</a></strong></p><p>规则:</p><p>array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 </p><p>如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。</p><p>然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。</p><p>例:</p><pre class="brush:php;toolbar:false">echo "<pre>"; print_r(array_merge_recursive($array1,$array2)); print_r(array_merge_recursive($array3,$array4));</pre><p>打印结果如下:<br/></p><pre class="brush:html;toolbar:false">Array ( [0] => 苹果 [1] => 西瓜 [2] => 橙子 [3] => 石榴 [4] => 梨子 [5] => 香蕉 ) Array ( [a] => 冬瓜 [b] => Array ( [0] => 白菜 [1] => 土豆 ) [c] => Array ( [0] => 番茄 [1] => 南瓜 ) [e] => 辣椒 )</pre><p>注意:规则跟array_merge基本相同,只是在处理相同字符键名的时候,采用递归追加。</p><p>以上就是关于“php数组合并三种方式”的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流。</p>