Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie Elemente nach Wert in einem zweidimensionalen PHP-Array

So löschen Sie Elemente nach Wert in einem zweidimensionalen PHP-Array

PHPz
PHPzOriginal
2023-04-27 09:08:06542Durchsuche

In PHP ist Array eine sehr verbreitete Datenstruktur, wobei zweidimensionale Arrays sogar noch häufiger verwendet werden. Wenn wir jedoch ein zweidimensionales Array verwenden, müssen wir manchmal ein Element darin löschen. Zu diesem Zeitpunkt müssen wir darüber nachdenken, das Element nach Wert zu löschen. In diesem Artikel wird erklärt, wie man in PHP Elemente aus einem zweidimensionalen Array nach Wert löscht.

1. Verwenden Sie die foreach-Schleife, um Elemente zu löschen.

Um Elemente in einem zweidimensionalen Array nach Wert zu löschen, besteht die einfachste Möglichkeit darin, das Array mit einer foreach-Schleife zu durchlaufen und dann zu bestimmen, ob jedes Element im Array gleich ist Der Wert, den wir löschen möchten. Wenn er gleich ist, löschen Sie einfach das Element. Der Code lautet wie folgt:

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

foreach ($arr as $k => $v) {
    if ($v['name'] == '李四') {
        unset($arr[$k]);
    }
}

Im obigen Code definieren wir zunächst ein zweidimensionales Array$arr und verwenden dann eine foreach-Schleife, um das Array zu durchlaufen und zu bestimmen, ob der „Name“-Schlüssel jedes Elements im Array gleich ist zu „李思“, und wenn ja, verwenden Sie einfach die Funktion unset(), um das Element aus dem Array zu entfernen. Das endgültige Array enthält nicht das Element „John Doe“.

Es ist zu beachten, dass Sie bei Verwendung der Funktion unset() zum Löschen von Elementen $k als Schlüsselnamen anstelle von $v verwenden müssen, da sonst ein Fehler ausgegeben wird.

2. Verwenden Sie die Funktion array_filter, um Elemente zu löschen.

Eine andere Möglichkeit, Elemente in einem zweidimensionalen Array nach Wert zu löschen, ist die Verwendung der Funktion array_filter, die eine Rückruffunktion verwenden kann, um jedes Element im Array zu filtern und ein neues Array zurückzugeben , enthält dieses neue Array nicht die gefilterten Elemente. Der Code lautet wie folgt:

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

$arr = array_filter($arr, function($v) {
    return $v['name'] != '李四';
});

Im obigen Code übergeben wir die Callback-Funktion als zweiten Parameter an die Funktion array_filter. Die Callback-Funktion akzeptiert jedes Element im Array als Parameter und gibt einen booleschen Wert zurück. Wenn es „true“ zurückgibt, bedeutet dies, dass das Element im neuen Array beibehalten wird. Wenn es „false“ zurückgibt, bedeutet dies, dass das Element aus dem neuen Array entfernt wird.

Im obigen Code verwenden wir eine anonyme Funktion als Rückruffunktion, um zu bestimmen, ob der „Name“-Schlüssel jedes Elements gleich „李思“ ist. Wenn nicht, geben wir true zurück, was angibt, dass das Element im beibehalten wird neues Array, andernfalls wird false zurückgegeben, was bedeutet, dass das Element aus dem neuen Array gelöscht wird.

Es ist zu beachten, dass die Funktion array_filter ein neues Array zurückgibt. Daher müssen wir das zurückgegebene Array im ursprünglichen Array speichern, um das endgültige Array mit entfernten angegebenen Elementen zu erhalten.

3. Verwenden Sie die Funktion array_search, um Elemente zu löschen.

Eine andere Möglichkeit, Elemente in einem zweidimensionalen Array nach Wert zu löschen, ist die Verwendung der Funktion array_search, mit der Sie den Schlüssel eines angegebenen Werts in einem Array finden und zurückgeben können Schlüsselname. Der Code lautet wie folgt:

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

$key = array_search('李四', array_column($arr, 'name'));

if ($key !== false) {
    unset($arr[$key]);
}

Im obigen Code verwenden wir die Funktion array_search, um den Schlüssel von „李思“ im Array zu finden. Der erste Parameter ist der zu findende Wert Der zweite Parameter ist der zu suchende Wert. Im obigen Code extrahieren wir das zweidimensionale Array spaltenweise in ein eindimensionales Array und suchen dann im eindimensionalen Array nach dem Schlüsselnamen „李思“. unset()-Funktion, um das dem Schlüssel delete entsprechende Element zu deaktivieren.

Es ist zu beachten, dass die Funktion array_search den Schlüsselnamen des Suchergebnisses zurückgibt. Wenn die Suche fehlschlägt, wird „false“ zurückgegeben. Wir müssen den Operator !== verwenden, um zu prüfen, ob der Rückgabewert falsch ist. Wenn nicht, bedeutet dies, dass die Suche erfolgreich ist und das angegebene Element gelöscht werden kann.

Zusammenfassung

Es gibt viele Möglichkeiten, zweidimensionale Array-Elemente nach Wert zu löschen. Oben werden drei gängige Methoden vorgestellt:

Verwenden Sie eine foreach-Schleife, um das Array zu durchlaufen und festzustellen, ob der Wert jedes Elements dem Wert von entspricht gelöscht werden. Wenn gleich, verwenden Sie einfach die Funktion unset(), um das Element zu löschen.

Verwenden Sie die Funktion array_filter, um das Array zu filtern, und verwenden Sie die Rückruffunktion, um zu bestimmen, ob jedes Element im neuen Array beibehalten werden muss.

Verwenden Sie die Funktion array_search, um den Schlüssel im Array mit dem angegebenen Wert zu finden, und verwenden Sie dann die Funktion unset(), um das dem Schlüssel entsprechende Element zu löschen.

In der tatsächlichen Entwicklung können wir je nach Bedarf verschiedene Methoden zum Löschen von Array-Elementen auswählen, um optimale Leistung und Effizienz zu erzielen.

Das obige ist der detaillierte Inhalt vonSo löschen Sie Elemente nach Wert in einem zweidimensionalen PHP-Array. 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