<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Merge one or more arrays</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.array-merge-recursive.html">array_merge_recursive</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.array-multisort.html">array_multisort</a></div> <div class="up"><a href="ref.array.html">Array Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.array-merge" class="refentry"> <div class="refnamediv"> <h1 class="refname">array_merge</h1> <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">array_merge</span> — <span class="dc-title">Merge one or more arrays</span></p> </div> <div class="refsect1 description" id="refsect1-function.array-merge-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">array</span> <span class="methodname"><strong>array_merge</strong></span> ( <span class="methodparam"><span class="type">array</span> <code class="parameter">$array1</code></span> [, <span class="methodparam"><span class="type">array</span> <code class="parameter">$...</code></span> ] )</div> <p class="para rdfs-comment"> Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. </p> <p class="para"> If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will <em class="emphasis">not</em> overwrite the original value, but will be appended. </p> <p class="para"> Values in the input array with numeric keys will be renumbered with incrementing keys starting from zero in the result array. </p> </div> <div class="refsect1 parameters" id="refsect1-function.array-merge-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter">array1</code></em></span> <dd> <p class="para"> Initial array to merge. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">...</code></em></span> <dd> <p class="para"> Variable list of arrays to merge. </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.array-merge-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns the resulting array. </p> </div> <div class="refsect1 changelog" id="refsect1-function.array-merge-changelog"> <h3 class="title">Changelog</h3> <p class="para"> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>5.0.0</td> <td> <div class="warning"><strong class="warning">Warning</strong> <p class="para"> The behavior of <span class="function"><strong>array_merge()</strong></span> was modified in PHP 5. Unlike PHP 4, <span class="function"><strong>array_merge()</strong></span> now only accepts parameters of type <span class="type"><a href="language.types.array.html" class="type array">array</a></span>. However, you can use typecasting to merge other types. See the example below for details. </p> <p class="para"> <div class="example" id="example-4963"> <p><strong>Example #1 <span class="function"><strong>array_merge()</strong></span> PHP 5 example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$beginning </span><span style="color: #007700">= </span><span style="color: #DD0000">'foo'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$end </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'bar'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">array_merge</span><span style="color: #007700">((array)</span><span style="color: #0000BB">$beginning</span><span style="color: #007700">, (array)</span><span style="color: #0000BB">$end</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> Array ( [0] => foo [1] => bar ) </pre></div> </div> </div> </p> </div> </td> </tr> </tbody> </table> </p> </div> <div class="refsect1 examples" id="refsect1-function.array-merge-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-4964"> <p><strong>Example #2 <span class="function"><strong>array_merge()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$array1 </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"color" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"red"</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$array2 </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #DD0000">"b"</span><span style="color: #007700">, </span><span style="color: #DD0000">"color" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"green"</span><span style="color: #007700">, </span><span style="color: #DD0000">"shape" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"trapezoid"</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">array_merge</span><span style="color: #007700">(</span><span style="color: #0000BB">$array1</span><span style="color: #007700">, </span><span style="color: #0000BB">$array2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 ) </pre></div> </div> </div> </p> <p class="para"> <div class="example" id="example-4965"> <p><strong>Example #3 Simple <span class="function"><strong>array_merge()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$array1 </span><span style="color: #007700">= array();<br /></span><span style="color: #0000BB">$array2 </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1 </span><span style="color: #007700">=> </span><span style="color: #DD0000">"data"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">array_merge</span><span style="color: #007700">(</span><span style="color: #0000BB">$array1</span><span style="color: #007700">, </span><span style="color: #0000BB">$array2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p> Don't forget that numeric keys will be renumbered! </p></div> <div class="example-contents screen"> <div class="cdata"><pre> Array ( [0] => data ) </pre></div> </div> <div class="example-contents"><p> If you want to append array elements from the second array to the first array while not overwriting the elements from the first array and not re-indexing, use the <em>+</em> array union operator: </p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$array1 </span><span style="color: #007700">= array(</span><span style="color: #0000BB">0 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'zero_a'</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'two_a'</span><span style="color: #007700">, </span><span style="color: #0000BB">3 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'three_a'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$array2 </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'one_b'</span><span style="color: #007700">, </span><span style="color: #0000BB">3 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'three_b'</span><span style="color: #007700">, </span><span style="color: #0000BB">4 </span><span style="color: #007700">=> </span><span style="color: #DD0000">'four_b'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$array1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">$array2</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p> The keys from the first array will be preserved. If an array key exists in both arrays, then the element from the first array will be used and the matching key's element from the second array will be ignored. </p></div> <div class="example-contents screen"> <div class="cdata"><pre> array(5) { [0]=> string(6) "zero_a" [2]=> string(5) "two_a" [3]=> string(7) "three_a" [1]=> string(5) "one_b" [4]=> string(6) "four_b" } </pre></div> </div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-function.array-merge-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.array-merge-recursive.html" class="function" rel="rdfs-seeAlso">array_merge_recursive()</a> - Merge two or more arrays recursively</span></li> <li class="member"> <span class="function"><a href="function.array-combine.html" class="function" rel="rdfs-seeAlso">array_combine()</a> - Creates an array by using one array for keys and another for its values</span></li> <li class="member"><a href="language.operators.array.html" class="link">array operators</a></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.array-merge-recursive.html">array_merge_recursive</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.array-multisort.html">array_multisort</a></div> <div class="up"><a href="ref.array.html">Array Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>