What we introduce to you today is array_merge is described in the reference manual as follows:
The PHP function array_merge() merges two or more arrays Cells are combined, and the values in one array are appended to the previous array. Returns the resulting array.
If there is the same string key name in the input array, the value after the key name will overwrite the previous value. However, if the array contains numeric keys, the subsequent values will not overwrite the original values but will be appended to them.
The difference between the PHP function array_merge() and the plus operator is:
1. When the array key name is a numeric key name, the two to be merged When there is a KEY number with the same name in the array, using array_merge() will not overwrite the original value, but using "+" to merge the arrays will return the first value as the final result, and the subsequent arrays will have the same key name. Those values are "discarded" (note: not overwriting but retaining the value that appears first). Example:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array1</font></span><span> = array(</span><span class="attribute"><font color="#ff0000">1</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'0'); </span></span></li> <li class=""> <span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array2</font></span><span> = array(</span><span class="attribute"><font color="#ff0000">1</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> "data"); </span> </li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result1</font></span><span> = $array2 + $array1;/*结果为$array2的值*/ </span> </li> <li class=""><span>print_r($result); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result</font></span><span> = $array1 + $array2 ;/*结果为$array1的值*/ </span> </li> <li class=""><span>print_r($result); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result3</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_merge</font></span><span>($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/ </span> </li> <li class=""><span>print_r($result3); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result4</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_merge</font></span><span>($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/ </span> </li> <li class=""><span>print_r($result4); </span></li> </ol>
The output result is:
<ol class="dp-xml"> <li class="alt"><span><span>Array ( [1] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> data ) </span></span></li> <li class=""> <span>Array ( [1] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0 ) </span> </li> <li class="alt"><span>Array ( </span></li> <li class=""> <span>[0] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> data </span> </li> <li class="alt"> <span>[1] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0 </span> </li> <li class=""><span>) </span></li> <li class="alt"><span>Array </span></li> <li class=""><span>( </span></li> <li class="alt"> <span>[0] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0 </span> </li> <li class=""> <span>[1] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> data </span> </li> <li class="alt"><span>) </span></li> </ol>
2. When the same array key name is a character, the "+" operation The symbol is the same as when the key name is numeric, but the PHP function array_merge() will overwrite the previous value with the same key name.
Example:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array1</font></span><span> = array('asd'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'0'); </span></span></li> <li class=""> <span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array2</font></span><span> = array('asd' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> "data"); </span> </li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result1</font></span><span> = $array2 + $array1;/*结果为$array2的值*/ </span> </li> <li class=""><span>print_r($result); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result</font></span><span> = $array1 + $array2 ;/*结果为$array1的值*/ </span> </li> <li class=""><span>print_r($result); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result3</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_merge</font></span><span>($array2,$array1);/*结果为$array1*/ </span> </li> <li class=""><span>print_r($result3); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">result4</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_merge</font></span><span>($array1,$array2);/*结果为$array2*/ </span> </li> <li class=""><span>print_r($result4); </span></li> </ol>
The output result is:
<ol class="dp-xml"> <li class="alt"><span><span>Array ( [asd] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> data ) </span></span></li> <li class=""> <span>Array ( [asd] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0 ) </span> </li> <li class="alt"> <span>Array ( [asd] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0 ) </span> </li> <li class=""> <span>Array ( [asd] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> data ) </span> </li> </ol>
The above is the actual difference between the PHP function array_merge() and the plus operator.