Heim > Artikel > Backend-Entwicklung > So löschen Sie Nullwerte in PHP
In der Vergangenheit wurden beim Entfernen leerer Werte aus einem Array die Verwendung dieser beiden Syntaxstrukturen erzwungen, um leere Elemente im Array zu löschen:
<?php foreach( $arr as $k=>$v){ if( !$v ) unset( $arr[$k] ); } ?>
Und ich fühle mich ziemlich gut dabei, aber es ist nicht sehr effizient. Ich habe es schon einmal versucht, zuerst $arr in ein Objekt umzuwandeln und es dann anhand der Eigenschaften des Objekts zu löschen, weil : foreach kopiert das aktuell bearbeitete Array. Bei jeder Operation wird eine Variable kopiert. Wenn zu viele foreach auf der Seite vorhanden sind, ist dies eine große Verschwendung.
Als ich im Internet herumstöberte, war ich überrascht, jemanden zu sehen, der die Verwendung von array_filter vorschlug. Ich schlug das Handbuch auf, warf einen Blick darauf und stellte fest, dass ich einen Schatzberg bewacht hatte, aber nicht wusste, wie man ihn benutzt. Die Funktion der Funktion
array_filter besteht darin, die Rückruffunktion zum Filtern des Arrays zu verwenden. Ich dachte immer, dass es nur von der Rückruffunktion verarbeitet werden kann, aber das habe ich nicht gefunden Im Handbuch gibt es einen weiteren Satz: Wenn keine Rückruffunktion vorhanden ist, werden standardmäßig Elemente mit einem falschen Wert im Array gelöscht.
Der Code lautet wie folgt:
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' ); print_r(array_filter($entry)); ?>
Der Ausgabewert ist:
Array ( [0] => foo [2] => -1 )
Es scheint, dass ich noch mehr lesen muss Handbücher in der Zukunft ... Wie array_slice ist auch eine gute Sache. Schade, dass mir das noch nie aufgefallen ist.
Anhang: Ein weiteres Beispiel
$strDelCodes = "A;B;;C;;C;D;;;D;D"; $rsArray = array_values(array_unique(array_diff (split (";", $strDelCodes), array (""))));
Die im Array $rsArray gespeicherten Werte sind: A B C D
Die Funktion array_values() gibt a zurück Wert, der ein Array enthält, das alle Schlüsselwerte im Array angibt, die Schlüsselnamen jedoch nicht beibehält.
Die Funktion array_diff() gibt das Differenzarray zweier Arrays zurück. Dieses Array enthält alle Schlüssel, die sich im verglichenen Array, aber in keinem der anderen Argumentarrays befinden.
Die Funktion array_unique() entfernt doppelte Werte aus einem Array und gibt das resultierende Array zurück. Wenn die Werte mehrerer Array-Elemente gleich sind, bleibt nur das erste Element erhalten und die anderen Elemente werden gelöscht.
Die Schlüsselnamen im zurückgegebenen Array bleiben unverändert. Die Funktion
array_merge() führt zwei oder mehr Arrays zu einem Array zusammen.
Wenn doppelte Schlüsselnamen vorhanden sind, ist der Schlüsselwert des Schlüssels der Wert, der dem letzten Schlüsselnamen entspricht (der spätere überschreibt den vorherigen). Wenn das Array numerisch indiziert ist, werden die Schlüsselnamen fortlaufend neu indiziert.
Das obige ist der detaillierte Inhalt vonSo löschen Sie Nullwerte in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!