Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Array-Manipulation (Zusammenführen, Teilen, Anhängen, Suchen, Löschen usw.)

PHP-Array-Manipulation (Zusammenführen, Teilen, Anhängen, Suchen, Löschen usw.)

高洛峰
高洛峰Original
2016-12-01 09:47:261196Durchsuche

1. Arrays zusammenführen
Die Funktion array_merge() führt Arrays zusammen und gibt ein kombiniertes Array zurück. Das resultierende Array beginnt mit dem ersten Eingabe-Array-Parameter und wird sequentiell in der Reihenfolge hinzugefügt, in der nachfolgende Array-Parameter erscheinen. Seine Form ist:
Code kopieren Der Code lautet wie folgt:
array array_merge (array array1 array2...,arrayN)

Diese Funktion führt die Zellen eines oder mehrerer Arrays und die Werte zusammen ​​in einem Array werden nach dem vorherigen Array angehängt. 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 nacheinander neu indiziert.
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple","banana","pear");
$numbered = array("1" ,"2 ","3");
$cards = array_merge($fruits, $numbered);
print_r($cards)// Ausgabe
// Array ( [0] => Apfel [1] => Birne [3] => 2 [5] => 🎜>2 . Array anhängen
Die Funktion array_merge_recursive() ist die gleiche wie array_merge(). Sie kann zwei oder mehr Arrays zusammenführen, um ein kombiniertes Array zu bilden. Der Unterschied zwischen den beiden besteht darin, dass die Funktion anders damit umgeht, wenn ein Schlüssel in einem Eingabearray bereits im Ergebnisarray vorhanden ist. array_merge() überschreibt die zuvor vorhandenen Schlüssel/Wert-Paare und ersetzt sie durch die Schlüssel/Wert-Paare im aktuellen Eingabearray, während array_merge_recursive() die beiden Werte zusammenführt, um ein neues Array mit den ursprünglichen Schlüsseln zu bilden ein Array-Name. Es gibt auch eine Form der Array-Zusammenführung, bei der Arrays rekursiv angehängt werden. Seine Form ist:

Code kopieren Der Code lautet wie folgt:
array array_merge_recursive(array array1,array array2[…,array arrayN])

Das Programmbeispiel lautet wie folgt:
Code kopieren Der Code lautet wie folgt:
$fruit1 = array("apple" => "red", "banana" => "yellow"); Fruit2 = Array("Pear" => "Yellow", "Apple" => "Green");
$result = array_merge_recursive($fruit1, $fruit2); 🎜>// Ausgabe
/ / Array ( [Apfel] => Array ( [0] => Rot [1] => Grün) [Banane] => Gelb [Birne] => Gelb)
?>

Jetzt zeigt der Schlüsselapfel auf ein Array, das aus zwei indizierten Arrays von Farbwerten besteht.
3. Arrays verbinden
Die Funktion array_combine() ruft ein neues Array ab, das aus einem Satz übermittelter Schlüssel und entsprechenden Werten besteht. Seine Form ist:
Code kopieren Der Code lautet wie folgt:
array array_combine(Array-Schlüssel,Array-Werte)

Beachten Sie, dass die beiden Eingabearrays dieselbe Größe haben müssen und nicht leer sein dürfen. Das Beispiel lautet wie folgt:
Kopieren Sie den Code. Der Code lautet wie folgt:
$name = array("apple", "banana", "orange");
$color = array("rot", "gelb", "orange");
$fruit = array_combine($name, $color); / Array ( [apple] = > red [banana] => yellow [orange] => orange )

4. Array_slice()
array_slice( )-Funktion gibt den A-Teil zurück, beginnend beim Tastenversatz und endend bei Versatz+Länge. Seine Form:

Code kopieren Der Code lautet wie folgt:
array array_slice (array array, int offset[,int length])

Wenn offset ein positiver Wert ist, erfolgt die Aufteilung vom Anfang des Arrays beginnend bei Offset; wenn Offset ein negativer Wert ist, beginnt die Aufteilung am Offset vom Ende des Arrays. Wenn der optionale Längenparameter weggelassen wird, beginnt die Aufteilung am Offset und geht bis zum letzten Element des Arrays. Wenn die Länge angegeben und positiv ist, endet sie bei Offset+Länge vom Anfang des Arrays. Wenn umgekehrt die Länge angegeben und negativ ist, endet sie bei count(input_array)-|length| vom Anfang des Arrays. Betrachten Sie ein Beispiel:
Code kopieren Der Code lautet wie folgt:
$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon" , "Watermelon");
$subset = array_slice($fruits, 3);
print_r($subset);
// Array ( [0] => ; Birne [ 1] => Traube [3] => Wassermelone )

Dann verwenden wir die untere negative Länge:
Der Code lautet wie folgt:
$fruits = array("Apfel", "Banane", "Orange", "Birne", "Traube", "Zitrone", "Wassermelone"); ;
print_r($subset);
// Ausgabe
// Array ( [0] => Orange [1] => Pear [2] => Grape )
?> ;

5. Die Funktion array_splice() löscht alle Elemente von Offset bis Offset+Länge im Array und gibt die gelöschten Elemente in Form eines Arrays zurück. Seine Form ist:
Code kopieren Der Code lautet wie folgt:
array array_splice (array array, int offset[,length[,array replacement]])

Wenn offset ein positiver Wert ist, wird der Die Verbindung erfolgt aus der Entfernung. Die Verbindung beginnt beim Versatz vom Anfang des Arrays. Wenn der Versatz ein negativer Wert ist, beginnt die Verbindung beim Versatz vom Ende des Arrays. Wenn der optionale Längenparameter weggelassen wird, werden alle Elemente entfernt, die an der Offset-Position beginnen und am Ende des Arrays enden. Wenn die Länge angegeben und positiv ist, endet der Join bei Offset + Länge vom Anfang des Arrays. Wenn umgekehrt die Länge angegeben und negativ ist, endet die Vereinigung mit count(input_array)-length vom Anfang des Arrays. Das Beispiel sieht wie folgt aus:
Code kopieren Der Code lautet wie folgt:
$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape ", "Lemon", "Watermelon");
$subset = array_splice($fruits, 4);
print_r($fruits);
print_r($subset);
// Ausgabe
// Array ( [0] => Apfel [1] => Banane [2] => Orange [3] => Birne )
// Array ( [0] => Traube [ 1] => Lemon [2] => Watermelon )

Mit dem optionalen Parameter replacement können Sie das Array angeben, um den Zielteil zu ersetzen. Das Beispiel sieht wie folgt aus:
Code kopieren Der Code lautet wie folgt:
$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape ", „Zitrone“, „Wassermelone“);
$subset = array_splice($fruits, 2, -1, array("Grüner Apfel", "Roter Apfel"));
print_r($fruits);
print_r($ subset);
// Ausgabe
// Array ( [0] => Apfel [1] => Banane [2] => Grüner Apfel [3] => Roter Apfel [4] = > Wassermelone)
// Array ( [0] => Orange [1] => Birne [2] => Traube [3] => Zitrone)
? >

Sie können deutlich sehen, wie Sie diese Funktion im Programm verwenden.

6. Schnittmenge von Arrays array_intersect()
Die Funktion array_intersect() gibt ein Array mit Schlüsseln zurück, die nur im ersten Array erscheinen und in jedem anderen Eingabearray aus Werten bestehen. Das Formular lautet wie folgt:

Code kopieren Der Code lautet wie folgt:
array array_intersect(array array1,array array2[,arrayN...])

Das folgende Beispiel wird zurückgegeben die Werte, die im Array $fruit1 erscheinen Und alle Früchte, die auch in $fruit2 und $fruit3 erscheinen:
Code kopieren Der Code lautet wie folgt:
$fruit1 = array( „Apfel“, „Banane“, „Orange“) ;
$fruit2 = array(“Birne“, „Apfel“, „Traube“); "Apple");
$intersection = array_intersect ($fruit1, $fruit2, $fruit3);
print_r($intersection); ; Apple )
?> Die Funktion array_intersect() betrachtet zwei Elemente nur dann als gleich, wenn sie gleich sind und denselben Datentyp haben.

7. Schnittmenge assoziativer Arrays array_intersect_assoc()
Die Funktion array_intersect_assoc() ist im Grunde die gleiche wie array_intersect(), außer dass sie beim Vergleich auch die Schlüssel des Arrays berücksichtigt. Daher werden im Ergebnisarray nur Schlüssel/Wert-Paare zurückgegeben, die im ersten Array und auch in allen anderen Eingabearrays erscheinen.
Das Formular lautet wie folgt:

Code kopieren Der Code lautet wie folgt:
array array_intersect_assoc(array array1,array array2[,arrayN...])

Das Folgende Beispiel gibt das Array zurück, das in $fruit1 erscheint, alle Schlüssel/Wert-Paare, die auch in $fruit2 und $fruit3 erscheinen:
Code kopieren Der Code lautet wie folgt:
$fruit1 = array ("rot"=>"Apfel", "gelb"=>"Banane", "orange"=>"Orange");
$fruit2 = array("gelb"=>"Birne", "red"=>"Apple" ,"purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange"," red"=>"Apple") ;
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection); ;

8. Array-Differenz array_diff()
Die Funktion array_diff() gibt Werte zurück, die im ersten Array erscheinen, aber nicht in anderen Eingabearrays sind. Diese Funktion ist das Gegenteil von array_intersect().
Code kopieren Der Code lautet wie folgt:
array array_diff(array array1,array array2[,arrayN...])

Das Beispiel lautet wie folgt:
Code kopieren Der Code lautet wie folgt:
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Birne","Apple","Traube"); );
$fruit3 = array(" Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
// Ausgabe
// Array ( [1] => Banana )

9 Differenzsatz des assoziativen Arrays array_diff_assoc()

Der Funktion array_diff_assoc() ist im Grunde dasselbe wie array_diff(), außer dass beim Vergleich auch die Schlüssel des Arrays berücksichtigt werden. Daher werden im Ergebnisarray nur Schlüssel/Wert-Paare zurückgegeben, die im ersten Array, aber nicht in anderen Eingabearrays vorkommen. Das Formular ist wie folgt:
Code kopieren Der Code lautet wie folgt:
array array_diff_assoc(array array1,array array2[,arrayN…])

Das folgende Beispiel gibt nur [gelb] => zurück Banane, weil dieses bestimmte Schlüssel/Wert-Paar in $fruit1 vorkommt, aber weder in $fruit2 noch in $fruit3 existiert.
Code kopieren Der Code lautet wie folgt:
$fruit1 = array("red"=>"Apple", yellow"=>"Banana", "orange"= >" Orange");
$fruit2 = array("gelb"=>"Birne", "rot"=>"Apfel", "lila"=>"Traube"); Fruit3 = Array ("green"=>"Watermelon", "orange"=>"Orange", "red"=>"Apple");
$intersection = array_diff_assoc($fruit1, $fruit2, $ Fruit3);
print_r($intersection);
// Ausgabe
// Array ( [gelb] => Banane)

Es ist oft notwendig Traverse bei Verwendung von Arrays-Arrays. Es ist oft notwendig, ein Array zu durchlaufen und die einzelnen Schlüssel oder Werte abzurufen (oder sowohl Schlüssel als auch Werte abzurufen). Daher überrascht es nicht, dass PHP einige Funktionen für diesen Zweck bereitstellt. Viele Funktionen führen zwei Aufgaben aus: Sie ermitteln nicht nur den Schlüssel oder Wert an der aktuellen Zeigerposition, sondern bewegen den Zeiger auch zur nächsten geeigneten Position.

10. Holen Sie sich den aktuellen Array-Schlüssel key()
key() gibt den Schlüssel an der aktuellen Zeigerposition in input_array zurück. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
gemischter Schlüssel (Array-Array)

Das folgende Beispiel gibt den Schlüssel des $fruits-Arrays aus, indem es durch das Array iteriert und verschoben wird der Zeiger:
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple"=>"red", "banana"=>"yellow"); = key($fruits)) {
printf("%s
", $key);
next($fruits)}
// apple
// banane

Hinweis: Der Zeiger wird nicht bei jedem Aufruf von key() bewegt. Zu diesem Zweck muss die Funktion next() verwendet werden. Die einzige Funktion dieser Funktion besteht darin, die Aufgabe des Vorrückens des Zeigers abzuschließen.

11. Ermitteln Sie den aktuellen Array-Wert current()
current() gibt den Array-Wert an der aktuellen Zeigerposition im Array zurück. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
gemischter Strom (Array-Array)

Modifizieren wir das vorherige Beispiel. Dieses Mal möchten wir den Array-Wert erhalten:
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple"=>"red", "banana"=>"yellow"); )) {
printf("% s
", $fruits);
next($fruits>}
// red
// yellow

12. Holen Sie sich den aktuellen Array-Schlüssel und -Werteach()
each()-Funktion gibt das aktuelle Schlüssel/Wert-Paar von input_array zurück und rückt den Zeiger um eine Position vor. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
array every(array array)

Das zurückgegebene Array enthält vier Schlüssel, Schlüssel 0 und Schlüssel enthalten den Schlüsselnamen und Schlüssel 1 und value enthalten die entsprechenden Daten. Befindet sich der Zeiger vor der Ausführung von every() am Ende des Arrays, wird false zurückgegeben.
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple", "banana", "orange", "pear"); >// Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 )

every() wird oft in Verbindung mit list() verwendet, um ein Array zu durchlaufen. Dieses Beispiel ähnelt dem vorherigen Beispiel, jedoch wird das gesamte Array in einer Schleife ausgegeben:
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple", "banana", "orange", "pear");
reset($fruits);
while (list($key, $val) = every($fruits))
{
echo "$key => $val< ;br />";
}
// 0 => Apfel
// 1 => Banane
// 2 => Orange
// 3 => Birne

Da durch das Zuweisen eines Arrays zu einem anderen Array der ursprüngliche Array-Zeiger zurückgesetzt wird, wird im obigen Beispiel eine Endlosschleife ausgelöst, wenn wir $fruits einer anderen Variablen innerhalb der Schleife zuweisen.
Damit ist die Array-Durchquerung abgeschlossen.

Das Suchen, Filtern und Durchsuchen von Array-Elementen sind einige häufige Funktionen von Array-Operationen. Hier sind einige verwandte Funktionen.

13. in_array()-Funktion
Die in_array()-Funktion sucht nach einem bestimmten Wert in einem Array und gibt true zurück, wenn der Wert gefunden wird, andernfalls gibt sie false zurück. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
boolean in_array(mixed Needle,array haystack[,boolean strict]);

Sehen Sie sich das folgende Beispiel an, um herauszufinden, ob der Variable Apfel ist bereits im Array, wenn ja, geben Sie eine Information aus:
Code kopieren Der Code lautet wie folgt:
$fruit = "apple";
$fruits = array("apple" ,"Banane", "Orange", "Birne" );
if( in_array($fruit,$fruits) )
echo "$fruit ist bereits im Array"; Der Parameter ist optional und erzwingt in_array() bei der Suche nach Typ.


14. Funktion array_key_exists()
Wenn ein angegebener Schlüssel in einem Array gefunden wird, gibt die Funktion array_key_exists() true zurück, andernfalls gibt sie false zurück. Das Formular lautet wie folgt:
Code kopieren Der Code lautet wie folgt:
boolean array_key_exists(mixed key, array array);

Das folgende Beispiel sucht nach Apple im Array-Schlüssel , die Frucht wird ausgegeben.
$fruit["pear"] = "green";
if(array_key_exists("apple", $fruit)){
printf("Apples Farbe ist %s",$fruit["apple" ]);
}
//Apples Farbe ist rot

15. array_search()-Funktion
array_search()-Funktion sucht nach einem angegebenen Wert in einem Array und gibt den entsprechenden Schlüssel zurück, wenn er gefunden wird , andernfalls wird false zurückgegeben. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
mixed array_search(mixed Needle,array haystack[,boolean strict])

Das folgende Beispiel durchsucht $fruits nach einem bestimmten Datum (7. Dezember) gibt die relevanten Informationen des entsprechenden Bundesstaates zurück:
Code kopieren Der Code lautet wie folgt:
$fruits["apple"] = "red"; banane"] = "gelb" ;
$fruits["watermelon"]="green";
$founded = array_search("green", $fruits);
if($founded)
printf("%s wurde am %s gegründet.",$founded, $fruits[$founded]);
//watermelon wurde am grünen

16 gegründet Die Funktion array_keys() gibt ein Array zurück, das alle im durchsuchten Array gefundenen Schlüssel enthält. Seine Form ist wie folgt:

Code kopieren Der Code lautet wie folgt:
array array_keys(array array[,mixed search_value])

Wenn der optionale Parameter search_value enthalten ist, werden nur Übereinstimmungen erzielt Mit diesem Wert wird der Schlüssel zurückgegeben. Das folgende Beispiel gibt alle im $fruit-Array gefundenen Arrays aus:
Code kopieren Der Code lautet wie folgt:
$fruits["apple"] = "red"; = "gelb";
$fruits["watermelon"]="green";
$keys = array_keys($fruits);
print_r($keys); ] => Apfel [1] => Banane [2] => Wassermelone)

17. array_values() Funktion gibt alle Werte in einem Array zurück ersetzt das zurückgegebene Array. Stellt einen numerischen Index bereit. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
array array_values(array array)

Das folgende Beispiel ruft den Wert jedes in $fruits gefundenen Elements ab:
Code kopieren Der Code lautet wie folgt:
$fruits["apple"] = "red";
$fruits["banana"] = "gelb";
$fruits["watermelon"]=" grün";
$values ​​= array_values($fruits);
print_r($values);
//Array ( [0] => rot [1] => gelb [2] => ; grün )

Manchmal müssen wir ein Array erweitern oder einen Teil des Arrays löschen. PHP bietet einige Funktionen zum Erweitern und Verkleinern von Arrays. Diese Funktionen bieten Komfort für Programmierer, die verschiedene Warteschlangenimplementierungen (FIFO, LIFO) emulieren möchten. Wie der Name schon sagt, spiegeln die Funktionsnamen dieser Funktionen (Push, Pop, Shift und Unshift) ihre Funktion deutlich wider.
PS: Die traditionelle Warteschlange ist eine Datenstruktur. Die Reihenfolge des Löschens und Hinzufügens von Elementen ist dieselbe und wird als First-In-First-Out oder FIFO bezeichnet. Im Gegensatz dazu ist ein Stapel eine andere Datenstruktur, in der Elemente in der umgekehrten Reihenfolge entfernt werden, in der sie hinzugefügt wurden. Dies wird zum Last-In-First-Out oder LIFO.


18. Elemente zum Kopf des Arrays hinzufügen
Die Funktion array_unshift() fügt Elemente zum Kopf des Arrays hinzu. Alle vorhandenen Zifferntasten werden geändert, um ihre neuen Positionen im Array widerzuspiegeln, die zugehörigen Tasten sind jedoch nicht betroffen. Seine Form ist wie folgt:
Code kopieren Der Code lautet wie folgt:
int array_unshift(array array,mixed variable[,mixed variable])

Das folgende Beispiel fügt zwei Früchte vor dem hinzu $fruits-Array:
Kopieren Sie den Code. Der Code lautet wie folgt:
$fruits = array("apple","banana");
array_unshift($fruits,"orange","pear")
// $fruits = array( „Orange“, „Birne“, „Apfel“, „Banane“);

19 Elemente am Ende des Arrays hinzufügen
Der Rückgabewert von Die Funktion array_push() ist vom Typ int. Dies ist das Array, nachdem die Daten in die Anzahl der Elemente verschoben wurden. Sie können dieser Funktion mehrere Variablen als Parameter übergeben und mehrere Variablen gleichzeitig in das Array übertragen. Seine Form ist:
Code kopieren Der Code lautet wie folgt:
(Array-Array,gemischte Variable [,gemischte Variable...])

Das folgende Beispiel fügt den $fruits zwei weitere Früchte hinzu array :
Code kopieren Der Code lautet wie folgt:
$fruits = array("apple","banana");
array_push($fruits,"orange","pear")
/ /$fruits = array("apple","banana","orange","pear")

20 Werte aus dem Kopf des Arrays löschen
Die Funktion array_shift() löscht und gibt das im Array gefundene Element zurück. Das Ergebnis ist, dass bei Verwendung numerischer Tasten alle entsprechenden Werte nach unten verschoben werden, wohingegen Arrays, die assoziative Tasten verwenden, davon nicht betroffen sind. Seine Form ist
Code kopieren Der Code lautet wie folgt:
mixed array_shift(array array)

Das folgende Beispiel löscht das erste Element apple im $fruits-Array:
Code kopieren Der Code ist wie folgt:
$fruits = array("apple","banana","orange",birne");
$fruit = array_shift($fruits>// $fruits = array ("Banane", "Orange", "Birne")
// $fruit = "apple";

21 Elemente vom Ende des Arrays löschen
Die Funktion array_pop() löscht und gibt das letzte Element des Arrays zurück. Seine Form ist:
Code kopieren Der Code lautet wie folgt:
mixed array_pop(aray target_array);

Das folgende Beispiel löscht den letzten Status aus dem $states-Array:
Kopieren Sie den Code Der Code lautet wie folgt:
$fruits = array("apple","banana","orange",pear");
$fruit = array_pop(
//$fruits = array("apple" ,"banana","orange");
//$fruit = "pear";

Stellungnahme:
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