Analyse der Ähnlichkeiten und Unterschiede zwischen drei Methoden zum Zusammenführen von PHP-Arrays

黄舟
Freigeben: 2023-03-17 14:02:01
Original
1921 Leute haben es durchsucht

Dann haben wir Ihnen im vorherigen Artikel verschiedene Methoden zum Zusammenführen von PHP-Arrays vorgestellt. Was sind also die Gemeinsamkeiten und Unterschiede dieser Methoden? Heute werden wir Ihnen weiterhin die Gemeinsamkeiten und Unterschiede der drei Methoden zum Zusammenführen von PHP-Arrays vorstellen!

1. „+“Operator

Regel: Wenn die Schlüsselnamen der beiden Arrays numerische Schlüsselnamen sind Oder Zeichenfolge Schlüsselname kann direkt sein +, $c = $a + $b, anhängen ($b ist ein Schlüsselname, der in $a nicht existiert) Schlüsselname und Wert nach $a.

Hinweis:

  1. überschreibt nicht, sondern hängt lediglich nicht vorhandene Schlüsselnamen und entsprechende Werte an.

  2. Schlüsselnamen werden nicht neu indiziert.

  3. Unabhängig davon, ob es sich um alle numerischen Schlüsselnamen oder gemischt handelt, werden nur der Schlüsselname und der Schlüsselwert angehängt. Wenn die Schlüsselnamen gleich sind, wird kein Anhängen durchgeführt, d. h. das erste Erscheinen Als Endergebnis wird der Wert zurückgegeben.

1    <?php    
2    $fruit_1 = array( &#39;apple&#39;, &#39;banana&#39; );    
3    $fruit_2 = array( &#39;orange&#39;, &#39;lemon&#39; );    
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    ?>
Nach dem Login kopieren

Numerischer Schlüsselname:

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

Zeichenschlüsselname:

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
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    ?>
Nach dem Login kopieren

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

Regel: array_merge () Kombiniert die Zellen eines oder mehrerer Arrays, wobei die Werte in einem Array an das vorherige Array angehängt werden. Gibt das resultierende Array zurück. Wenn das Eingabearray denselben Zeichenfolgenschlüsselnamen hat, überschreibt der Wert nach dem Schlüsselnamen den vorherigen Wert. Wenn das Array jedoch numerische Schlüssel enthält, überschreiben die nachfolgenden Werte nicht die ursprünglichen Werte, sondern werden an diese angehängt. Wenn nur ein Array angegeben ist und das Array numerisch indiziert ist, werden die Schlüssel fortlaufend neu indiziert.

Hinweis:

  1. Der numerische Index wird nicht überschrieben, nachdem die Werte zusammengeführt wurden, werden die Schlüsselnamen kontinuierlich neu indiziert

  2. String-Schlüsselname, der Wert nach dem Schlüsselnamen überschreibt den vorherigen Wert

1    <?php    
2    $a = array( &#39;a&#39; );    
3    $b = array( &#39;u&#39; );    
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    ?>
Nach dem Login kopieren

Numerischer Schlüsselname:

1    <?php    
2    $a = array( 66=>&#39;a&#39; );    
3    $b = array( 60=>&#39;u&#39;, 66=>&#39;c&#39; );    
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    ?>
Nach dem Login kopieren

Zeichenschlüsselname:

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
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    ?>
Nach dem Login kopieren

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

array_merge_recursive() Führt die Zellen eines oder mehrerer Arrays zusammen, wobei die Werte in einem Array an das vorherige Array angehängt werden. Gibt das resultierende Array zurück.

Wenn die Eingabearrays denselben String-Schlüsselnamen haben, werden diese Werte in einem Array zusammengeführt, das rekursiv weitergeht. Wenn also ein Wert selbst ein Array ist, folgt diese Funktion die entsprechenden Einträge in ein anderes Array.

Wenn die Arrays jedoch denselben Array-Schlüsselnamen haben, überschreibt der letztere Wert nicht den ursprünglichen Wert, sondern wird an ihn angehängt.

Hinweis: Die Regeln sind grundsätzlich dieselben wie bei array_merge, mit der Ausnahme, dass rekursives Anhängen verwendet wird, wenn derselbe Zeichenschlüsselname verarbeitet wird.

1    <?php    
2    $a = array( &#39;a&#39; );    
3    $b = array( &#39;u&#39; );    
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    ?>
Nach dem Login kopieren

Numerischer Schlüsselname:

1    <?php    
2    $a = array( 66=>&#39;a&#39; );    
3    $b = array( 60=>&#39;u&#39;, 66=>&#39;c&#39; );    
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    ?>
Nach dem Login kopieren

Zeichenschlüsselname:

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
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    ?>
Nach dem Login kopieren

Zusammenfassung:

In diesem Artikel werden die Gemeinsamkeiten und Unterschiede der drei Methoden zum Zusammenführen von PHP-Arrays anhand von Beispielen ausführlich vorgestellt. Jede Methode hat ihre Vor- und Nachteile. Freunde können die geeignete Methode entsprechend ihren eigenen Anforderungen auswählen.

Verwandte Empfehlungen:

Beispiel für die Zusammenführung und Deduplizierung von PHP-Arrays


Mehrere Beispiele für die Zusammenführung von PHP-Arrays Einführung zu Methoden


Hinweise zur Verwendung der Funktion array_merge() im PHP-Array

Das obige ist der detaillierte Inhalt vonAnalyse der Ähnlichkeiten und Unterschiede zwischen drei Methoden zum Zusammenführen von PHP-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!