In PHP ist die Funktion array_column ein häufig verwendetes Werkzeug zum Extrahieren von Daten aus einer angegebenen Spalte aus einem zweidimensionalen Array. Diese Funktion eignet sich besonders für einige häufige Bedürfnisse im Umgang mit assoziativen Arrays, wie z. B. das Extrahieren bestimmter Felder aus einer Datentabelle. Bei Verwendung der Funktion array_column wird jedoch manchmal festgestellt, dass es ein leeres Array zurückgibt. Warum passiert das dann? In diesem Artikel werden mehrere Gründe untersucht, die dazu führen können, dass Array_Column ein leeres Array zurückgibt.
Array_Column muss in ein zweidimensionales Array übergeben, und jedes Element im Inneren sollte ein Array oder ein Objekt sein. Wenn die eingehende Array -Struktur den Anforderungen nicht entspricht, funktioniert die Funktion möglicherweise nicht ordnungsgemäß.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$names = array_column($data, 'name'); // Normalerweise zurückkehren ['Alice', 'Bob', 'Charlie']
Wenn sich die Struktur des Datenarrays ändert, kann Array_Column ein leeres Array zurückgeben.
$data = [
['name' => 'Alice'],
['name' => 'Bob'],
['name' => 'Charlie']
];
$names = array_column($data, 'id'); // Geben Sie ein leeres Array zurück,Weil'id'Existiert nicht
In diesem Beispiel haben die Elemente des Arrays keine ID -Taste, sodass Array_Column die Spalte ID nicht extrahieren und schließlich ein leeres Array zurückgeben kann.
Der zweite Parameter von Array_Column ist der Spaltenname (Schlüsselname). Wenn der übergebene Spaltenname im Array -Element keine übereinstimmende Taste findet, gibt die Funktion ein leeres Array zurück.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$ids = array_column($data, 'id'); // Normalerweise zurückkehren [1, 2, 3]
Wenn der Name des eingehenden Spaltennamens falsch geschrieben oder in den Daten nicht vorhanden ist, gibt Array_Column ein leeres Array zurück.
$ids = array_column($data, 'iddd'); // Geben Sie ein leeres Array zurück,Weil'iddd'列Existiert nicht
Stellen Sie sicher, dass der Spaltenname korrekt ist und dass die Spalte in jedem Element gefunden wird.
Array_Column geht davon aus, dass jedes Element im übergebenen Array ein Array oder Objekt sein sollte. Wenn ein Element ein skalarer Wert ist (z. B. eine Zeichenfolge oder eine Zahl), kann Array_Column möglicherweise nicht in der Lage sein, diese Elemente zu verarbeiten und so ein leeres Array zurückzugeben.
$data = [
['id' => 1, 'name' => 'Alice'],
'invalid_data',
['id' => 2, 'name' => 'Bob']
];
$names = array_column($data, 'name'); // Geben Sie ein leeres Array zurück,Weil'data'Arrays enthalten Nicht-Array-Elemente
In diesem Beispiel ist 'Invaly_Data' eine Zeichenfolge, die nicht den Anforderungen von Array_Column entspricht. Daher gibt die Funktion ein leeres Array zurück.
Array_Column ermöglicht auch, dass ein dritter Parameter übergeben wird, um den Index als Neuarray anzugeben. Wenn Sie den Index versehentlich festlegen, kann dies dazu führen, dass ein leeres Array zurückgegeben wird, insbesondere wenn die Datenstruktur inkonsistent ist.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$names = array_column($data, 'name', 'id'); // Normalerweise zurückkehren [1 => 'Alice', 2 => 'Bob', 3 => 'Charlie']
Wenn jedoch die Indexspalte nicht vorhanden ist, kann Array_Column ein leeres Array zurückgeben.
$names = array_column($data, 'name', 'nonexistent'); // Geben Sie ein leeres Array zurück,Weil'nonexistent'列Existiert nicht
Stellen Sie sicher, dass die Indexspalte im Array vorhanden ist.
Wenn das eingehende Array leer ist oder nicht konforme Daten enthält, gibt Array_Column auch ein leeres Array zurück. Wenn Sie beispielsweise ein leeres Array oder ein Array mit leeren Werten übergeben, ist das Rückgabeergebnis natürlich leer.
$data = [];
$names = array_column($data, 'name'); // Geben Sie ein leeres Array zurück,Weil$dataEs ist leer
Bei der Verwendung von Array_Column kann die Funktion ein leeres Array zurückgeben, da die Array-Struktur den Anforderungen nicht erfüllt, der Spaltenname falsch ist, die enthält Nicht-Array-Elemente, den Indexspezifikationsfehler oder den Pass in einem leeren Array. Um diese Probleme zu vermeiden, stellen Sie sicher, dass die Array -Struktur korrekt ist, der Spaltenname korrekt und die Indexspezifikation angemessen ist. Eine sorgfältige Untersuchung von Datenstrukturen ist der Schlüssel zur Vermeidung dieser Probleme.
Wenn Sie ähnliche Probleme haben, überprüfen Sie die im Code übergebenen Arrays und Parameter, um deren Korrektheit zu bestätigen.