三种PHP合并数组的方法异同_PHP教程
1、“+”运算符
规则:当两个数组的键名是数字键名或者字符串键名可以直接 +,$c = $a + $b,在$a后追加($b在$a中不存在的键名)键名和值。
注意:
- 不覆盖,只是追加不存在的键名和对应的值。
- 键名不重新索引。
- 无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回。
<?php $fruit_1 = array( 'apple', 'banana' ); $fruit_2 = array( 'orange', 'lemon' ); $fruit = $fruit_1 + $fruit_2; var_dump($fruit); // output: // array(2) { [0]=> string(5) "apple" [1]=> string(6) "banana" } ?>
数字键名:
<?php $a = array( 66=>'a' ); $b = array( 60=>'u', 66=>'c' ); $c = $a + $b; var_dump($c); // output: // array(2) { [66]=> string(1) "a" [60]=> string(1) "u" } ?>
字符键名:
<?php $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); $c = $a + $b; var_dump($c); // output: // 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" } ?>
2、array array_merge ( array array1 [, array array2 [, array ...]] )
规则:array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
注意:
- 数字索引,不会覆盖,值合并后,键名会连续方式重新索引
- 字符串键名,则该键名后面的值将覆盖前一个值
<?php $a = array( 'a' ); $b = array( 'u' ); $c = array_merge($a, $b); var_dump($c); // output: // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" } ?>
数字键名:
<?php $a = array( 66=>'a' ); $b = array( 60=>'u', 66=>'c' ); $c = array_merge($a, $b); var_dump($c); // output: // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" } ?>
字符键名:
<?php $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); $c = array_merge($a, $b); var_dump($c); // output: // 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" } ?>
3、array array_merge_recursive ( array array1 [, array ...] )
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。
然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
注意:规则跟array_merge基本相同,只是在处理相同字符键名的时候,采用递归追加。
<?php $a = array( 'a' ); $b = array( 'u' ); $c = array_merge_recursive($a, $b); var_dump($c); // output: // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" } ?>
数字键名:
<?php $a = array( 66=>'a' ); $b = array( 60=>'u', 66=>'c' ); $c = array_merge_recursive($a, $b); var_dump($c); // output: // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" } ?>
字符键名:
<?php $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); $c = array_merge_recursive($a, $b); var_dump($c); // output: // 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" } ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apabila menggunakan array_merge() dalam PHP untuk menggabungkan tatasusunan, ia akan menghasilkan hasil yang mengelirukan jika ia mengandungi rentetan kosong atau tatasusunan kosong. Penyelesaian: 1. Gunakan array_filter() untuk menapis nilai nol. 2. Untuk kes yang mengandungi tatasusunan kosong, gunakan fungsi cantum rekursif array_merge_recursive_distinct() untuk mengekalkan struktur tatasusunan yang konsisten.

Untuk gabungan tatasusunan dalam PHP, kerumitan masa bergantung pada algoritma: O(m+n) untuk array_merge() dan + operator, dengan m dan n ialah saiz tatasusunan. Penggabungan gelung juga O(m+n). Pilih kaedah yang sesuai berdasarkan faktor seperti saiz tatasusunan dan ketersediaan, dan pertimbangkan keperluan prestasi untuk mengoptimumkan aplikasi anda.

Dalam versi PHP8.0, operasi penggabungan tatasusunan telah dipertingkatkan. Peningkatan ini terutamanya menyasarkan operasi penggabungan jenis data tatasusunan. Dalam versi sebelumnya, operasi penggabungan tatasusunan yang disediakan oleh PHP telah dilaksanakan menggunakan simbol "+". Walau bagaimanapun, terdapat beberapa masalah dengan pendekatan ini. Jika dua tatasusunan mengandungi kunci yang sama, nilai kunci dalam tatasusunan kedua akan menimpa nilai kunci dalam tatasusunan pertama Jika anda perlu menggabungkan dua tatasusunan bersama-sama, anda perlu menggunakan fungsi array_merge() dengan mahir. . Sekarang, dalam PHP

Perbandingan kecekapan penggabungan tatasusunan PHP: Kerumitan masa bagi tiga kaedah Array_merge(), + operator dan Array_replace() semuanya O(n), yang bermaksud bahawa masa penggabungan adalah berkadar dengan bilangan elemen tatasusunan. Kerumitan ruang bagi ketiga-tiga kaedah ini juga adalah O(n), yang bermaksud bahawa penggunaan memori adalah berkadar dengan bilangan elemen tatasusunan. Keputusan yang diukur menunjukkan bahawa Array_merge() dan + operator adalah lebih pantas daripada Array_replace() apabila menggabungkan tatasusunan besar.

Apabila menggabungkan tatasusunan dalam PHP, anda boleh memilih kaedah berikut untuk menangani elemen pendua: gunakan array_merge() digabungkan dengan array_unique() untuk mengalih keluar elemen pendua. Gunakan array_replace() untuk menulis ganti elemen pendua tanpa mengubah tatasusunan asal. Gunakan array_diff() untuk mengalih keluar elemen daripada satu tatasusunan yang tiada dalam tatasusunan lain.

Analisis fungsi PHP5.5: Cara menggunakan fungsi array_reduce untuk menggabungkan elemen tatasusunan menjadi satu nilai Dalam pengaturcaraan PHP, kita selalunya perlu memproses tatasusunan, dan kadangkala kita perlu menggabungkan elemen tatasusunan menjadi satu nilai. Pada masa ini, kita boleh menggunakan fungsi array_reduce yang diperkenalkan dalam versi PHP 5.5 untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan penggunaan fungsi array_reduce secara terperinci dan memberikan contoh kod yang sepadan. Fungsi array_reduce ialah a

Penyelesaian kepada PHPWarning:array_merge():Argument Dalam pembangunan PHP, kita sering menghadapi PHPWarning:array_merge():Mesej ralat Argumen Apakah maksud ini? PHPWarning:array_merge(): Ralat hujah disebabkan kerana satu atau lebih parameter bukan daripada jenis tatasusunan. gabungan fungsi array_merge().

Gunakan fungsi PHP "array_merge" untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan Dalam pembangunan PHP, kadangkala kita perlu menggabungkan berbilang tatasusunan menjadi satu tatasusunan besar untuk memproses data dengan lebih mudah. Untuk mencapai fungsi ini, PHP menyediakan fungsi yang berkuasa "array_merge". Fungsi array_merge adalah sangat mudah untuk digunakan Ia menerima berbilang tatasusunan sebagai parameter dan menggabungkannya ke dalam tatasusunan baharu. Berikut ialah sintaks asas untuk menggunakan fungsi: array_merg
