php中數組合并array_merge是最靠得住的函數了,下文我們在利用array_merge函數合并時主要是對于兩個數組的鍵值為數字進行處理.
先要了解一個基礎知識點:
PHP中兩個數組合并可以使用+或者array_merge,但之間還是有區別的,而且這些區別如果了解不清楚項目中會要命的.
主要區別是兩個或者多個數組中如果出現相同鍵名,鍵名分為字符串或者數字,需要注意.
1)鍵名為數字時,array_merge()后面的值將不會覆蓋原來的值,而是附加到后面,但+合并數組則會把最先出現的值作為最終結果返回,而把后面的數組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
2)鍵名為字符串時,array_merge()此時會覆蓋掉前面相同鍵名的值,但+仍然把最先出現的值作為最終結果返回,而把后面的數組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋),代碼如下:
- $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)
- ++++++++++++++++++++++++++++++++++++++++++
- //開源軟件:Vevb.com
- $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)
好了講到這么多了我們來看看下合并2個數字鍵數組的值,代碼如下:
- <?php
- /**
- * PHP合并2個數字鍵數組的值
- *
- * @param array $arr1
- * @param array $arr2
- * @return array
- * @author www.49028c.com
- */
- 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
- )
新聞熱點
疑難解答