In der PHP -Programmierung ist Array_Column eine häufig verwendete Funktion, um den Wert einer Spalte aus einem mehrdimensionalen Array zu extrahieren. Es hilft uns, Daten schneller zu verarbeiten und zu konvertieren, aber manchmal werden wir bei der Verwendung von Array_Column auf "Spalte nicht gefunden" Fehler auftreten. Dieser Fehler tritt normalerweise auf, wenn wir versuchen, auf Spalten zugreifen zu können, die im Array nicht vorhanden sind. In diesem Artikel werden gemeinsame Ursachen für diesen Fehler untersucht und Lösungen bereitgestellt.
Das erste Argument für die Funktion array_column ist ein mehrdimensionales Array, das über das Array iteriert und alle Werte der angegebenen Spalte zurückgibt. Normalerweise sollte die bestandene Array-Struktur ein zweidimensionales Array sein, in dem jedes Subtarray eine Zielsäule enthält. Wenn die Array -Struktur nicht den Erwartungen entspricht, kann die angegebene Spalte nicht gefunden werden, was zu einem Fehler "Spalte nicht gefunden" führt.
$array = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
$names = array_column($array, 'name'); // richtig
print_r($names);
Im obigen Beispiel kann Array_Column die Spalte des Namens korrekt extrahieren. Wenn das Array jedoch falsch ist, tritt ein Fehler auf.
$array = [
['id' => 1, 'age' => 25],
['id' => 2, 'age' => 30],
['id' => 3, 'age' => 22],
];
$names = array_column($array, 'name'); // Fehler:Nein im Array "name" Liste
In diesem Beispiel gibt es im Array überhaupt keine Namensspalte , sodass Array_Column einen Fehler "Spalte nicht gefunden" wirft.
Überprüft, ob die Zielspalte in jedem Subtarray des Arrays vorhanden ist.
Stellen Sie sicher, dass der in Array_Column übergebene Spaltenname korrekt ist.
Die Funktion array_column wird herausfinden, ob der Schlüsselname jedes Subtarrays im Array mit dem in übergebenen Spaltennamen übereinstimmt. Dieser Fehler kann auch verursacht werden, wenn einige Subarrays nicht die Spalte haben oder ob die Spalte unterschiedliche Schlüsselnamen hat.
$array = [
['id' => 1, 'name' => 'Alice'],
['id' => 2], // Mangel 'name' Schlüssel
['id' => 3, 'name' => 'Charlie'],
];
$names = array_column($array, 'name'); // Fehler:第二项Mangel 'name' Schlüssel
In diesem Beispiel fehlt dem zweiten Subtarray die Namenstaste , sodass Array_Column beim Extrahieren der Namensspalte fehlschlägt und einen Fehler "Spalte nicht gefunden" wirft.
Stellen Sie sicher, dass jede Subtarray die gleiche Struktur hat.
Wenn Sie sich nicht sicher sind, ob die Spalte vorhanden ist, können Sie sie zuerst überprüfen oder den dritten Parameter index_key von array_column verwenden, um das Fehlen des Spalte zu vermeiden.
PHP ist Fallempfindlichkeit, was bedeutet, dass bei Verwendung von Array_Column der Fall der Spaltennamen genau übereinstimmen muss. Wenn der Fall des Spaltennamens inkonsistent ist, kann die Spalte auch nicht gefunden werden.
$array = [
['ID' => 1, 'Name' => 'Alice'],
['ID' => 2, 'Name' => 'Bob'],
['ID' => 3, 'Name' => 'Charlie'],
];
$names = array_column($array, 'name'); // Fehler:Liste名大小写不一致
Im obigen Code ist die Spalte im Array Name und der Spaltenname, in dem wir übergeben, ist Name (Kleinbuchstaben). Aufgrund des inkonsistenten Falls kann Array_Column die Spalte Name nicht finden, daher wird ein Fehler "Spalte nicht gefunden" geworfen.
Stellen Sie sicher, dass der Name des eingehenden Spaltennamens der Fall ist, der mit dem Spaltennamen im Array übereinstimmt.
Wenn das eingehende Array leer ist, kann Array_Column nichts ausführen und die Spalte wird nicht gefunden. Dieser Fall wirft keinen Fehler "Spalte nicht gefunden", aber das Ergebnis wird ein leeres Array sein. Obwohl kein Fehler, kann diese Situation manchmal Missverständnisse verursachen.
$array = [];
$names = array_column($array, 'name'); // Geben Sie ein leeres Array zurück,不是Fehler
print_r($names); // Ausgabe:Array()
Überprüfen Sie vor dem Aufrufen von Array_Column , ob das Array leer ist.
Die Funktion array_column wurde in PHP Version 5.5.0 eingeführt. Wenn Ihre PHP -Version niedriger als 5.5.0 ist, können Sie diese Funktion nicht verwenden und auch auf damit verbundene Fehler stoßen.
Upgrade auf PHP 5.5 oder höher.
Array_Column ist eine sehr nützliche Funktion, aber Sie können bei der Verwendung "Spalte nicht gefunden" Fehler begegnen. Zu den häufigen Gründen gehört die Array -Struktur, die Erwartungen, Spaltennamenfehler, inkonsistente Schlüsselnamen im Array, inkonsistenten Fall von Spaltennamen, leeren Arrays und zu niedriger PHP -Version nicht erfüllen. Zu den Lösungen für diese Probleme gehört die Sicherstellung, dass die Array -Struktur korrekt ist, die Spaltennamen konsistent sind, und zu überprüfen, ob die PHP -Version den Anforderungen entspricht.
Wenn Sie auf diesen Fehler stoßen, sollten Sie die oben genannten Aspekte durchsuchen, um das Problem schnell zu finden und zu lösen.