Array_Column ist eine sehr nützliche Funktion in PHP, mit der Sie den Wert einer angegebenen Spalte aus einem mehrdimensionalen Array extrahieren können. In einigen Fällen können bestimmte Spalten bestimmter Elemente in einem Array Nullwerte enthalten, und es ist wichtig zu verstehen, wie PHP diese Nullwerte umgeht, um unerwartete Fehler zu vermeiden.
In diesem Artikel werden wir diskutieren, wie PHP diese Nullwerte behandelt, wenn Sie die Funktion array_column verwenden, um Werte in einem Array zu extrahieren, wenn der Wert einer Spalte null ist und ob ein besonderes Verhalten besteht, auf das Sie achten können.
Lassen Sie uns zunächst kurz die grundlegende Verwendung der Funktion array_column überprüfen. Es akzeptiert die folgenden Parameter:
Array : Das mehrdimensionale Eingangsarray.
Spaltenname oder Spaltenindex : Gibt die zu extrahierende Spalte an.
Indexierte Spalte (optional): Wenn dieser Parameter bereitgestellt wird, wird das zurückgegebene Array basierend auf dieser indizierten Spalte rekonstruiert.
Hier ist ein einfaches Beispiel mit Array_Column :
<?php
$array = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => null],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
// Extrakt email Liste
$emails = array_column($array, 'email');
print_r($emails);
?>
Ausgabe:
Array
(
[0] => alice@example.com
[1] =>
[2] => charlie@example.com
)
In diesem Beispiel extrahieren wir die E -Mail -Spalte und stellen fest, dass der E -Mail -Wert des zweiten Elements null ist. PHP konvertiert es bei der Verarbeitung in eine leere Zeichenfolge ( "" ) und entzieht den Wert nicht vollständig aus dem Array.
Wenn Sie eine Spalte in Array_Column extrahieren und die Spalte einen Nullwert enthält, wandelt PHP den Nullwert automatisch in eine leere Zeichenfolge um. Es ist zu beachten, dass dies nicht löschen soll, sondern Null als leere Zeichenfolge in das zurückgegebene Array speichern.
Im obigen Beispiel ist die E -Mail -Spalte des zweiten Elements NULL , und das endgültige Ausgabearray zeigt eine leere Zeichenfolge. Wenn es sich um einen anderen Wert handelt (z. B. eine Ganzzahl oder ein Boolescher), wird er so zurückgegeben.
Ersetzen Sie Nullwerte durch Zeichenfolgen : Wie oben gezeigt, ersetzt PHP Nullwerte durch leere Zeichenfolgen. Dies bedeutet, dass Sie, wenn Sie mit Arrays arbeiten, möglicherweise besonders darauf achten müssen, wie Sie zwischen Nullwerten und leeren Zeichenfolgen unterscheiden können. Leere Saiten und Null sind unterschiedliche Typen in PHP und können in einigen Fällen logische Fehler verursachen, insbesondere wenn es um bedingte Urteile geht.
Verarbeitung nicht fester Spalten : Wenn die Spalte, die Sie extrahieren möchten, im Array nicht vorhanden ist, gibt Array_Column ein leeres Array zurück. Wenn Sie also Array_Column verwenden, stellen Sie sicher, dass die zu extrahierenden Spalten in der Array -Struktur vorhanden sind, wobei die Rückgabe unnötiger leerer Arrays vermeiden.
Im Falle der Indexspalte NULL : Wenn Sie eine Indexspalte (der dritte Parameter) und der Wert der Spalte null angeben, wird Array_Column es ignorieren und das Element nicht in das Endergebnis einbezogen. Zum Beispiel:
<?php
$array = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => null, 'name' => 'Bob', 'email' => null],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
// Extrakt email Liste,entsprechend id Liste作为索引
$emails = array_column($array, 'email', 'id');
print_r($emails);
?>
Ausgabe:
Array
(
[1] => alice@example.com
[3] => charlie@example.com
)
In diesem Beispiel werden Elemente mit ID -Null ignoriert und nur Elemente mit ID 1 und 3 im Ergebnis enthalten.
Bei Verwendung der Funktion array_column wandelt PHP diese Nulls in die leeren Zeichenfolgen. Dieses Verhalten kann einige besondere Überlegungen mit Arrays mit Nullwerten bringen, insbesondere wenn sie zwischen Null- und leeren Zeichenfolgen bei bedingten Urteilen unterscheiden. Wenn Sie sich mit dem Unterschied zwischen Null- und leeren Zeichenfolgen befassen müssen, können Sie nach dem Extrahieren der Spalten eine weitere Verarbeitung des Arrays in Betracht ziehen, um logische Fehler zu vermeiden.
Ich hoffe, dieser Artikel kann Ihnen helfen, das Verhalten der array_column -Funktion in PHP besser zu verstehen, wenn Nullwerte verarbeitet werden!