php數組合并三種方法的異同解析

來源:互聯網
上載者:User
那麼我們在之前的文章中給大家介紹了實現php數組合并的幾種方法,相信小夥伴們都有所瞭解了,那麼這幾種方法的異同呢?今天我們就繼續為大家介紹下php數組合并三種方法的異同解析!

1、“+”運算子

規則:當兩個數組的鍵名是數字鍵名或者字串鍵名可以直接 +,$c = $a + $b,在$a後追加($b在$a中不存在的鍵名)鍵名和值。

注意:

  1. 不覆蓋,只是追加不存在的鍵名和對應的值。

  2. 鍵名不重新索引。

  3. 無論是全部數字鍵名還是混合,都只是追加鍵名和值,如果鍵名相同則不進行追加,即把最先出現的值作為最終結果返回。

1    <?php    2    $fruit_1 = array( 'apple', 'banana' );    3    $fruit_2 = array( 'orange', 'lemon' );    4    $fruit = $fruit_1 + $fruit_2;    5    var_dump($fruit);    6    7    // output:    8    // array(2) { [0]=> string(5) "apple" [1]=> string(6) "banana" }    9    ?>

數字鍵名:

1    <?php    2    $a = array( 66=>'a' );    3    $b = array( 60=>'u', 66=>'c' );    4    $c = $a + $b;    5    var_dump($c);    6    7    // output:    8    // array(2) { [66]=> string(1) "a" [60]=> string(1) "u" }    9    ?>

字元鍵名:

1    <?php    2    $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' );    3    $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' );    4    $c = $a + $b;    5    var_dump($c);    6    7    // output:    8  // array(7) { [1]=> string(1) "a" [2]=> string(1) "b" ["c"]=> string(1) "c" ["d"]=> string(1) "d" [3]=> string(1) "v" ["y"]=> string(1) "y" [60]=> string(1) "z" }    9    ?>

2、array array_merge ( array array1 [, array array2 [, array ...]] )

規則:array_merge() 將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。 如果輸入的數組中有相同的字串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。 如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。

注意:

  1. 數字索引,不會覆蓋,值合并後,鍵名會連續方式重新索引

  2. 字串鍵名,則該鍵名後面的值將覆蓋前一個值

1    <?php    2    $a = array( 'a' );    3    $b = array( 'u' );    4    $c = array_merge($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }    9    ?>

數字鍵名:

1    <?php    2    $a = array( 66=>'a' );    3    $b = array( 60=>'u', 66=>'c' );    4    $c = array_merge($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" }    9    ?>

字元鍵名:

1    <?php    2    $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' );    3    $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' );    4    $c = array_merge($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(8) { [0]=> string(1) "a" [1]=> string(1) "b" ["c"]=> string(1) "w" ["d"]=> string(1) "x" [2]=> string(1) "u" [3]=> string(1) "v" ["y"]=> string(1) "y" [4]=> string(1) "z" }    9    ?>

3、array array_merge_recursive ( array array1 [, array ...] )

array_merge_recursive() 將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。

如果輸入的數組中有相同的字串鍵名,則這些值會被合并到一個數組中去,這將遞迴下去,因此如果一個值本身是一個數組,本函數將按照相應的條目把它合并為另一個數組。

然而,如果數組具有相同的數組鍵名,後一個值將不會覆蓋原來的值,而是附加到後面。

注意:規則跟array_merge基本相同,只是在處理相同字元鍵名的時候,採用遞迴追加。

1    <?php    2    $a = array( 'a' );    3    $b = array( 'u' );    4    $c = array_merge_recursive($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }    9    ?>

數字鍵名:

1    <?php    2    $a = array( 66=>'a' );    3    $b = array( 60=>'u', 66=>'c' );    4    $c = array_merge_recursive($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" }    9    ?>

字元鍵名:

1    <?php    2    $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' );    3    $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' );    4    $c = array_merge_recursive($a, $b);    5    var_dump($c);    6    7    // output:    8    // array(8) { [0]=> string(1) "a" [1]=> string(1) "b" ["c"]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "w" } ["d"]=> array(2) { [0]=> string(1) "d" [1]=> string(1) "x" } [2]=> string(1) "u" [3]=> string(1) "v" ["y"]=> string(1) "y" [4]=> string(1) "z" }    9    ?>

總結:

本文通過執行個體詳細介紹了php數組合并的三種方法異同,每個方法都有優缺點,小夥伴們可以根據自己的需求選擇自己合適的方法!

相關推薦:

php數組合并且去重的樣本


php實現數組合并的幾種方法介紹


php數組合并array_merge()函數使用注意事項

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.