php中數(shù)組合并array_merge是最靠得住的函數(shù)了,下文我們?cè)诶胊rray_merge函數(shù)合并時(shí)主要是對(duì)于兩個(gè)數(shù)組的鍵值為數(shù)字進(jìn)行處理。
先要了解一個(gè)基礎(chǔ)知識(shí)點(diǎn)
PHP中兩個(gè)數(shù)組合并可以使用+或者array_merge,但之間還是有區(qū)別的,而且這些區(qū)別如果了解不清楚項(xiàng)目中會(huì)要命的!
主要區(qū)別是兩個(gè)或者多個(gè)數(shù)組中如果出現(xiàn)相同鍵名,鍵名分為字符串或者數(shù)字,需要注意
1)鍵名為數(shù)字時(shí),array_merge()后面的值將不會(huì)覆蓋原來(lái)的值,而是附加到后面,但+合并數(shù)組則會(huì)把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
2)鍵名為字符串時(shí),array_merge()此時(shí)會(huì)覆蓋掉前面相同鍵名的值,但+仍然把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)。
代碼如下:
$a = array('a', 'b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));
//輸出:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
++++++++++++++++++++++++++++++++++++++++++
$a = array(
0 => 'a',
1 => 'b'
);
$b = array(
0 => 'c',
1 => 'b'
);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
//輸出:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
++++++++++++++++++++++++++++++++++++++++++
$a = array('a', 'b');
$b = array(
'0' => 'c',
1 => 'b'
);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
//輸出:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
++++++++++++++++++++++++++++++++++++++++++
$a = array(
0 => 'a',
1 => 'b'
);
$b = array(
'0' => 'c',
'1' => 'b'
);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
輸出:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
好了講到這么多了我們來(lái)看看下合并2個(gè)數(shù)字鍵數(shù)組的值
代碼如下:
<?php
/**
* PHP合并2個(gè)數(shù)字鍵數(shù)組的值
*
* @param array $arr1
* @param array $arr2
* @return array
* @author
*/
function new_array_merge($arr1, $arr2)
{
$arr = array_flip($arr1) + array_flip($arr2);
return array_keys($arr);
}
$arr1 = array('aa', 'bb', 'cc');
$arr2 = array('aa2', 'bb', 'cc2');
$arr = new_array_merge($arr1, $arr2);
print_r($arr);
輸出:
Array
(
[0] => aa
[1] => bb
[2] => cc
[3] => aa2
[4] => cc2
)
更多信息請(qǐng)查看IT技術(shù)專欄