Aktueller Standort: Startseite> Neueste Artikel> Kombinieren

Kombinieren

M66 2025-05-14

In PHP sind Arrays sehr häufig verwendete Datenstrukturen, und es gibt viele Funktionen für den Array -Betrieb. Unter ihnen sind Array_Diff () und Array_values ​​() zwei allgemeine Array -Betriebsfunktionen. Array_Diff () wird verwendet, um die Differenz zwischen zwei Arrays zu berechnen, während Array_Values ​​() ein redexiertes Array zurückgibt.

Manchmal müssen wir einige Elemente im Array löschen und den Index des Arrays nach dem Löschen der Elemente regenerieren. Diese Anforderung ist sehr häufig, wenn wir uns mit Arrays befassen, insbesondere wenn wir bestimmte spezifische Werte aus dem Array löschen, möchten wir aufeinanderfolgende Indizes regenerieren. Im Folgenden wird gezeigt, wie Array_Diff () und Array_Values ​​() in Kombination verwendet werden, um diese Funktion zu erreichen.

1. Einführung in die Basisarray_Diff () -Funktion

Die Funktion array_diff () wird verwendet, um die Differenz zwischen zwei oder mehr Arrays zu berechnen und ein Array von Elementen zurückzugeben, die im ersten Array, jedoch nicht in anderen Arrays, enthalten sind.

Zum Beispiel:

 $array1 = [1, 2, 3, 4];
$array2 = [2, 4];

$result = array_diff($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [0] => 1
    [2] => 3
)

In diesem Beispiel gibt Array_Diff () ein Array zurück, das Elemente in Array1 enthält, jedoch nicht in Array2 , und die Elemente 2 und 4 werden gelöscht.

2. wie man den Index mit Array_Values ​​() wieder aufbaut

Wenn wir bestimmte Elemente mit Array_Diff () löschen, kann der Index des resultierenden Arrays diskontinuierlich werden. Um den Index des Arrays zu regenerieren, können wir Array_Values ​​() verwenden. Array_Values ​​() gibt ein neues Array mit dem Index ab 0 zurück und hat die Elemente des Arrays neu angeordnet.

Zum Beispiel:

 $array = [10 => 'a', 11 => 'b', 12 => 'c'];
$array = array_values($array);
print_r($array);

Ausgabe:

 Array
(
    [0] => a
    [1] => b
    [2] => c
)

3. kombinieren

Jetzt können wir array_diff () und array_values ​​() kombinieren, um die Funktion des Löschens von Array -Elementen und den Wiederaufbau von Indizes zu implementieren. Angenommen, wir haben ein Array, in dem wir einige bestimmte Elemente daraus entfernen müssen und möchten, dass der endgültige Array -Index erneut von 0 startet.

Beispielcode:

 // Originalarray
$array1 = [1, 2, 3, 4, 5, 6, 7];

// Löschen Sie den Wert als 2 Und 4 Elemente
$array2 = [2, 4];

$result = array_diff($array1, $array2);

// Reindedex
$result = array_values($result);

print_r($result);

Ausgabe:

 Array
(
    [0] => 1
    [1] => 3
    [2] => 5
    [3] => 6
    [4] => 7
)

In diesem Beispiel verwenden wir zuerst Array_Diff (), um Elemente mit den Werten 2 und 4 zu löschen und dann den Index über Array_Values ​​() so zu rekonstruieren, so dass der Index des Ergebnisarrays von 0 beginnt und die Kontinuität sicherstellt.

4. Verwenden Sie Szenarien

Diese Methode ist sehr geeignet für Szenen, in denen der Array -Index garantiert zusammenhängend ist, nachdem bestimmte Elemente aus dem Array entfernt werden müssen. Wenn Sie beispielsweise Benutzerdaten verarbeiten, kann das Löschen bestimmter unerwünschter Elemente und Redexes Probleme bei nachfolgenden Operationen vermeiden.

Zusammenfassen

Durch Kombination von Array_Diff () und Array_Values ​​() können wir spezifische Elemente aus dem Array leicht löschen und ein kontinuierliches indiziertes Array regenerieren. Dieser Ansatz ist sehr nützlich, wenn es um komplexe Array -Operationen geht, die Code vereinfacht und die Effizienz steigert.