在PHP中,可以通過使用(+)運算符或array_merge()函數來合并數組;但這兩種方法有細微的差別。下面本篇文章就來帶大家了解一下這兩種方法的區別,希望對大家有所幫助。
使用array_merge()函數合并數組
array_merge()函數是一個內置函數,可以用于連接一個或多個作為輸入提供的數組,而不管它們的類型;并返回一個新數組。在此合并過程中,數組的值將附加到前一個數組的末尾,以生成結果數組。
語法:
array_merge( $arr1, $arr2, $arr3... )
參數: array_merge()函數接受一個或多個輸入數組,并將它們合并為單個結果數組。
注意:在array_merge()函數中,如果輸入數組具有相同的字符串鍵,則在結果數組中,該鍵的后一個值將覆蓋前一個值。但是,如果數組包含數字鍵,那么值將不會被替換,它們只會附加到結果數組中。同樣,在數字數組的情況下,結果數組中的鍵值將從零開始重新編號。
使用+運算符合并數組
合并兩個數組的另一種方法就是通過使用“數組+數組”的方法。+運算符是一個二元運算符,意味著它一次只能合并兩個數組;在此合并過程中,會將右側數組追加到左手數組的末尾。
語法:
$arr3 = $arr1 + $arr2
參數:(+)運算符一次處理兩個數組并生成結果數組。
注意:如果使用(+)運算符合并數組,如果兩個數組中有相同的鍵(無論是字符串鍵,還是數字鍵),則結果數組只會保留與鍵對應的左側數組中的值,右側數組的值將被忽略。
+運算符和array_merge()的區別
下面通過代碼示例來看看+運算符和array_merge()之間的區別。
示例1:使用array_merge()合并數組
- <?php
- header("content-type:text/html;charset=utf-8");
- $arr1 = array( 'zero' => 0,
- 'one' => 1,
- 'two' => 2, 10, 11, 12, 13
- );
- $arr2 = array( 'one' => 11,
- 'three' => 3,
- 'four' => 4, 12, 13, 14, 15
- );
- $arr3 = array_merge($arr1, $arr2);
- //Vevb.com
- echo "使用array_merge()合并數組的結果:<br>";
- var_dump($arr3);
- ?>
輸出:
- 使用array_merge()合并數組的結果:
- array (size=13)
- 'zero' => int 0
- 'one' => int 11
- 'two' => int 2
- 0 => int 10
- 1 => int 11
- 2 => int 12
- 3 => int 13
- 'three' => int 3
- 'four' => int 4
- 4 => int 12
- 5 => int 13
- 6 => int 14
- 7 => int 15
示例2:使用(+)運算符合并數組
- <?php
- header("content-type:text/html;charset=utf-8");
- $arr1 = array( 'zero' => 0,
- 'one' => 1,
- 'two' => 2, 10, 11, 12, 13
- );
- $arr2 = array( 'one' => 11,
- 'three' => 3,
- 'four' => 4, 12, 13, 14, 15
- );
- $arr4 = $arr1 + $arr2;
- echo "<br>使用(+)運算符合并數組的結果:<br>";
- var_dump($arr4);
- ?>
輸出:
- 使用(+)運算符合并數組的結果:
- array (size=9)
- 'zero' => int 0
- 'one' => int 1
- 'two' => int 2
- 0 => int 10
- 1 => int 11
- 2 => int 12
- 3 => int 13
- 'three' => int 3
- 'four' => int 4
新聞熱點
疑難解答