Heim > Artikel > Backend-Entwicklung > Was passiert, wenn das von PHP gelöschte Array das nächste Mal nicht angezeigt wird?
Array ist in PHP ein sehr verbreiteter Datentyp. Es kann verschiedene Datentypen speichern und grundlegende Operationen wie Hinzufügen, Löschen, Ändern und Abfragen ausführen. Wenn wir ein Array-Element löschen müssen, können wir dazu die Funktion unset verwenden. Aber manchmal stellen wir fest, dass das gelöschte Element beim nächsten Mal wieder im Array erscheint. Warum ist das so?
Tatsächlich liegt dies daran, dass das Array in PHP ein assoziatives Array ist, was bedeutet, dass jedes Element einen entsprechenden Schlüsselwert hat und die unset-Funktion nur den entsprechenden Wert löscht, der Schlüssel jedoch noch vorhanden ist, also beim nächsten Mal Durchquert wird dieser Schlüssel erneut im Array angezeigt, der entsprechende Wert ist jedoch leer.
Wie können wir dieses Element tatsächlich löschen? Mit der Funktion array_values können wir die Reihenfolge der Array-Schlüssel neu anordnen, sodass die Schlüssel bei 0 beginnen und kontinuierlich erhöht werden. Dadurch wird sichergestellt, dass zuvor gelöschte Elemente nicht erneut angezeigt werden.
Hier ist ein Beispielcode:
$arr = array('apple', 'banana', 'orange'); unset($arr[1]); // 删除元素 $newArr = array_values($arr); // 重新排列键 print_r($newArr);
Ausgabeergebnis:
Array ( [0] => apple [1] => orange )
Wie oben gezeigt, können die Schlüssel mithilfe der Funktion array_values neu angeordnet werden, um sicherzustellen, dass das gelöschte Element nicht erneut angezeigt wird.
Es ist zu beachten, dass die Funktion „array_values“ zwar den Zweck des Löschens von Elementen erreichen kann, aber auch eine Neuanordnung der Array-Schlüssel verursacht, was sich möglicherweise auf die vorherige Codelogik auswirkt. Sie müssen dies daher bei der Verwendung sorgfältig prüfen .
Darüber hinaus können Sie in PHP 7 und höher die neue Funktion array_filter verwenden, um Array-Elemente zu löschen. Diese Funktion gibt ein neues Array zurück, in dem die gelöschten Elemente nicht angezeigt werden. Anwendungsbeispiele sind wie folgt:
$arr = array('apple', '', 'banana', 'orange'); $newArr = array_filter($arr); // 过滤掉为空的元素 print_r($newArr);
Ausgabeergebnisse:
Array ( [0] => apple [2] => banana [3] => orange )
filtert leere Elemente im Array über die Funktion array_filter heraus, ohne die Tastenreihenfolge des ursprünglichen Arrays zu ändern, was eine gewisse Praktikabilität hat.
Kurz gesagt, um Array-Elemente in PHP zu löschen, können Sie dazu die Funktion unset oder die Funktion array_filter verwenden. Sie müssen jedoch auf die Reihenfolge der Schlüssel achten, um unnötigen Ärger zu vermeiden.
Das obige ist der detaillierte Inhalt vonWas passiert, wenn das von PHP gelöschte Array das nächste Mal nicht angezeigt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!