Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie ein bestimmtes Subarray in einem zweidimensionalen Array in PHP

So löschen Sie ein bestimmtes Subarray in einem zweidimensionalen Array in PHP

PHPz
PHPzOriginal
2023-04-20 13:51:46640Durchsuche

Im PHP-Entwicklungsprozess ist Array ein äußerst wichtiger Datentyp, der problemlos große Datenmengen speichern und darstellen kann. Manchmal müssen wir bestimmte Arrays aus einem zweidimensionalen Array entfernen. Was sollen wir tun? In diesem Artikel werden zwei verschiedene Methoden vorgestellt, um diesen Zweck zu erreichen.

Methode 1: Verwenden Sie die Funktion array_filter

Die Funktion array_filter ist eine integrierte Funktion in PHP, die zum Filtern von Elementen in einem Array verwendet wird. Mit dieser Funktion können wir bestimmte Arrays aus einem zweidimensionalen Array entfernen. Die spezifische Implementierung lautet wie folgt:

function removeArray($arr, $remove)
{
    return array_filter($arr, function ($item) use ($remove) {
        return !in_array($item, $remove);
    });
}

Im obigen Code definieren wir eine Funktion namens „removeArray“, die zwei Parameter akzeptiert:

  • $arr: stellt das zweidimensionale Array dar, aus dem das Array entfernt werden muss.
  • $remove: Gibt den Array-Satz an, der entfernt werden muss.

Als nächstes verwenden wir die Funktion array_filter, um das Array $arr zu filtern. In der Rückruffunktion verwenden wir die Funktion in_array, um zu bestimmen, ob das aktuell durchlaufene Array entfernt werden muss. Gibt „false“ zurück, wenn es entfernt werden muss, andernfalls „true“. Schließlich ist das gefilterte Array das Ergebnis, das wir benötigen.

Anwendungsfall:

$data = [
    ['name' => 'Tom', 'age' => 20],
    ['name' => 'Jerry', 'age' => 18],
    ['name' => 'Andy', 'age' => 22],
    ['name' => 'John', 'age' => 25]
];

$remove = [
    ['name' => 'Tom', 'age' => 20],
    ['name' => 'John', 'age' => 25]
];

$result = removeArray($data, $remove);

print_r($result);

Ausgabeergebnis:

Array
(
    [1] => Array
        (
            [name] => Jerry
            [age] => 18
        )

    [2] => Array
        (
            [name] => Andy
            [age] => 22
        )

)

Methode 2: Funktion array_udiff verwenden

Eine andere Methode ist die Verwendung der Funktion array_udiff. Diese Funktion wird zum Berechnen des Differenzsatzes von Arrays verwendet. Sie kann eine Rückruffunktion anpassen, um Arrays zu vergleichen und die erforderlichen Funktionen zu erreichen.

Die spezifische Implementierung lautet wie folgt:

function removeArray($arr, $remove)
{
    return array_udiff($arr, $remove, function ($a, $b) {
        return ($a == $b) ? 0 : 1;
    });
}

Im obigen Code ähneln wir Methode 1 und definieren eine Funktion namens „removeArray“. Die Funktion akzeptiert zwei Parameter, $arr und $remove, die jeweils den Array-Satz darstellen, aus dem das Array entfernt werden muss, bzw. den Array-Satz, der entfernt werden muss.

Wir verwenden die Funktion array_udiff, um das Array $arr und das Array $remove zu vergleichen, die benutzerdefinierte Funktion auszuführen, die Elemente im Array zu vergleichen und das Ergebnis zurückzugeben.

Anwendungsfall:

$data = [
    ['name' => 'Tom', 'age' => 20],
    ['name' => 'Jerry', 'age' => 18],
    ['name' => 'Andy', 'age' => 22],
    ['name' => 'John', 'age' => 25]
];

$remove = [
    ['name' => 'Tom', 'age' => 20],
    ['name' => 'John', 'age' => 25]
];

$result = removeArray($data, $remove);

print_r($result);

Ausgabeergebnis:

Array
(
    [1] => Array
        (
            [name] => Jerry
            [age] => 18
        )

    [2] => Array
        (
            [name] => Andy
            [age] => 22
        )

)

Zusammenfassend gibt es zwei Möglichkeiten, bestimmte Arrays aus einem zweidimensionalen Array zu entfernen, nämlich die Funktion array_filter und die Funktion array_udiff. Beides sind häufig verwendete Methoden, und welche Sie verwenden sollten, hängt von Ihren Anforderungen ab.

Es ist zu beachten, dass Methode eins (array_filter) nicht gut funktioniert, wenn das gleiche Unterarray im Array vorhanden ist, da Arrays in PHP nicht direkt verglichen werden können und die Funktion array_diff_assoc verwendet werden muss.

Das obige ist der detaillierte Inhalt vonSo löschen Sie ein bestimmtes Subarray in einem zweidimensionalen Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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