Heim > Backend-Entwicklung > PHP-Problem > Was passiert, wenn das von PHP gelöschte Array das nächste Mal nicht angezeigt wird?

Was passiert, wenn das von PHP gelöschte Array das nächste Mal nicht angezeigt wird?

PHPz
Freigeben: 2023-04-23 11:20:27
Original
428 Leute haben es durchsucht

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);
Nach dem Login kopieren

Ausgabeergebnis:

Array
(
    [0] => apple
    [1] => orange
)
Nach dem Login kopieren

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);
Nach dem Login kopieren

Ausgabeergebnisse:

Array
(
    [0] => apple
    [2] => banana
    [3] => orange
)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage