Heim > Artikel > Backend-Entwicklung > So löschen Sie leere Arrays in zweidimensionalen Arrays in PHP
Bei PHP-Array-Operationen stoßen wir häufig auf das Vorhandensein von Nullwerten im Array, was sich normalerweise auf nachfolgende Datenverarbeitungsvorgänge auswirkt. Daher ist es erforderlich, die Nullwerte im Array zu ersetzen (leere Zeichenfolge, falsch). , null usw.) Löschen Sie es. In diesem Artikel wird erläutert, wie leere Arrays in zweidimensionalen Arrays gelöscht werden.
In PHP können Sie die Funktion array_filter verwenden, um leere Werte in einem Array zu löschen. Diese Funktion kann zwei Parameter akzeptieren. Der erste Parameter stellt das zu filternde Array dar und der zweite Parameter stellt die zu verwendende Rückruffunktion dar. Die Rückruffunktion kann angeben, welche Werte herausgefiltert werden sollen. Wenn wir beispielsweise leere Zeichenfolgen und falsch herausfiltern möchten, können wir die Rückruffunktion wie folgt definieren:
function my_callback($value){ return $value !== '' && $value !== false; }
wobei $value jeden darstellt Element im Array, verwenden Sie != Der =-Operator bestimmt, ob die Bedingung erfüllt ist. Verwenden Sie dann die Funktion array_filter, um das Array zu filtern:
$arr = array('a', '', 'b', false, null); $new_arr = array_filter($arr, 'my_callback'); print_r($new_arr);
Das Ausgabeergebnis ist:
Array ( [0] => a [2] => b )
Wie Sie sehen können, werden leere Zeichenfolgen und falsch herausgefiltert. Aber wenn wir es mit zweidimensionalen Arrays zu tun haben, wird es etwas komplizierter.
Betrachten Sie das folgende zweidimensionale Array:
$arr = array( array('a', '', 'b'), array('c', false, null), array('', 'd', 'e') );
Unser Ziel ist es, das leere Array daraus zu löschen. Mit der Funktion array_filter können Sie die Filterbedingungen in der folgenden Form schreiben:
function my_callback($row){ return array_filter($row, function($value){ return $value !== '' && $value !== false; }); }
wobei $row jede Zeile im zweidimensionalen Array darstellt, verwenden Sie array_filter, um die Elemente jeder Zeile zu filtern, und dann das Ergebnis zurückgeben.
Wir können dann die Funktion array_map verwenden, um diese Rückruffunktion auf jede Zeile im zweidimensionalen Array anzuwenden:
$new_arr = array_map('my_callback', $arr); print_r($new_arr);
Die Ausgabe ist:
Array ( [0] => Array ( [0] => a [2] => b ) [1] => Array ( [0] => c ) [2] => Array ( [1] => d [2] => e ) )#🎜 🎜# Wie Sie sehen können, wurde das leere Array gelöscht. Es ist zu beachten, dass das von der Funktion array_map zurückgegebene Ergebnis immer noch ein zweidimensionales Array ist und jede Zeile eine unterschiedliche Anzahl von Elementen enthalten kann, sodass das Array möglicherweise mithilfe der Funktion array_values neu indiziert werden muss.
$new_arr = array_map('my_callback', $arr); $new_arr = array_map('array_values', $new_arr); print_r($new_arr);Das Ausgabeergebnis ist:
Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c ) [2] => Array ( [0] => d [1] => e ) )Wie Sie sehen können, wurde das Array neu indiziert. Zusammenfassend lässt sich sagen, dass das Löschen leerer Arrays in zweidimensionalen Arrays durch die Kombination der Funktionen array_filter und array_map erreicht werden kann. Sie müssen zwei Rückruffunktionen schreiben, eine zum Filtern von Elementen und eine zum Filtern des gefilterten Arrays. Neu indizieren. Der Vorteil dieser Methode besteht darin, dass sie einfach und leicht verständlich ist, der Nachteil besteht jedoch darin, dass der Code relativ lang ist. Für Programme, die häufige Array-Operationen erfordern, sollten Sie die Verwendung eines effizienteren Algorithmus in Betracht ziehen.
Das obige ist der detaillierte Inhalt vonSo löschen Sie leere Arrays in zweidimensionalen Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!