PHPプログラミングでは、 Array_Columnは、多次元配列から列の値を抽出するために一般的に使用される関数です。より迅速にデータを処理および変換するのに役立ちますが、 Array_Columnを使用すると、「列が見つかっていない」エラーが発生する場合があります。通常、このエラーは、配列に存在しない列にアクセスしようとすると発生します。この記事では、このエラーの一般的な原因を調査し、ソリューションを提供します。
Array_Column関数の最初の引数は、ARRAYを反復し、指定された列のすべての値を返す多次元配列です。通常、合格した配列構造は2次元配列でなければなりません。そこでは、各サブアレイにはターゲット列が含まれています。アレイ構造が期待を満たしていない場合、指定された列を見つけることができないため、「列が見つかりません」エラーが発生します。
$array = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
$names = array_column($array, 'name'); // 正しい
print_r($names);
上記の例では、 array_columnは名前列を正しく抽出できます。ただし、配列が正しくない場合、エラーが発生します。
$array = [
['id' => 1, 'age' => 25],
['id' => 2, 'age' => 30],
['id' => 3, 'age' => 22],
];
$names = array_column($array, 'name'); // 間違い:配リストにはいいえ "name" リスト
この例では、配列に名前列がまったくないため、 array_columnは「列が見つからない」エラーをスローします。
アレイの各サブアレイにターゲット列が存在するかどうかを確認します。
array_columnで渡された列名が正しいことを確認してください。
array_column関数は、配列内の各サブアレイのキー名が渡された列名と一致しているかどうかを調べます。一部のサブアレイに列がない場合、または列に異なるキー名がある場合、このエラーも発生する場合があります。
$array = [
['id' => 1, 'name' => 'Alice'],
['id' => 2], // 足らない 'name' 鍵
['id' => 3, 'name' => 'Charlie'],
];
$names = array_column($array, 'name'); // 間違い:第二项足らない 'name' 鍵
この例では、2番目のサブアレイには名前キーがないため、名前の列を抽出するときにarray_columnが失敗し、「列が見つからない」エラーをスローします。
各サブアレイに同じ構造があることを確認してください。
列が存在するかどうかわからない場合は、最初に確認するか、 array_columnの3番目のパラメーターindex_keyを使用して、列の欠落の問題を避けます。
PHPはケースに敏感です。つまり、 array_columnを使用する場合、列名のケースが正確に一致する必要があります。列名の場合が一貫していない場合、列も見つかりません。
$array = [
['ID' => 1, 'Name' => 'Alice'],
['ID' => 2, 'Name' => 'Bob'],
['ID' => 3, 'Name' => 'Charlie'],
];
$names = array_column($array, 'name'); // 間違い:リスト名大小写不一致
上記のコードでは、配列の列は名前で、渡される列名は名前(小文字)です。一貫性のないケースのため、 array_columnという名前の列が見つからないため、「列が見つかりません」エラーがスローされます。
着信列名が、配列の列名と一致するケースであることを確認してください。
着信配列が空の場合、 array_columnは何も実行できず、列は見つかりません。このケースでは、「列が見つかりません」エラーをスローしませんが、結果は空の配列になります。間違いではありませんが、この状況は誤解を引き起こすことがあります。
$array = [];
$names = array_column($array, 'name'); // 空の配列を返します,不是間違い
print_r($names); // 出力:Array()
array_columnを呼び出す前に、配列が空であるかどうかを確認します。
array_column関数は、PHPバージョン5.5.0で導入されました。 PHPバージョンが5.5.0未満の場合、この関数を使用することはできず、関連するエラーも遭遇します。
PHP 5.5以降にアップグレードします。
array_columnは非常に便利な機能ですが、使用すると「列が見つかっていない」エラーに遭遇する可能性があります。一般的な理由には、期待を満たさない配列構造、列名エラー、配列の一貫性のないキー名、列名の一貫性のないケース、空の配列、PHPバージョンが低すぎることが含まれます。これらの問題の解決策には、配列構造が正しく、列名が一貫していることを確認し、PHPバージョンが要件を満たしていることを確認することが含まれます。
このエラーが発生した場合、上記の側面をチェックすると、問題をすばやく見つけて解決するのに役立ちます。