array_change_key_case

関数の概要

array_change_key_caseは、PHPの配列のキーをすべて大文字または小文字に変換するための関数です。多くの場合、配列のキーの大文字・小文字の統一が必要な時に使われます。例えば、APIから取得した配列のキーの書式が統一されていない場合や、キー名の比較を簡単にしたい場合に便利です。

パラメータの説明

  • array $array
    キーを変換したい配列を指定します。
  • int $case = CASE_LOWER
    キーを変換するケースを指定します。CASE_LOWER(デフォルト)で小文字、CASE_UPPERで大文字に変換します。

戻り値

指定した配列のキーをすべて大文字または小文字に変換した新しい配列を返します。元の配列は変更されません。

使用例

基本的な使い方(小文字に変換)

$array = ["Name" => "Taro", "Age" => 30];
$result = array_change_key_case($array);
print_r($result);

出力結果:

Array
(
    [name] => Taro
    日付未入力 => 30
)

この例では、配列のキー「Name」「Age」が小文字の「name」「age」に変換されています。

大文字に変換する場合

$array = ["name" => "Hanako", "city" => "Tokyo"];
$result = array_change_key_case($array, CASE_UPPER);
print_r($result);

出力結果:

Array
(
    [NAME] => Hanako
    [CITY] => Tokyo
)

第2引数にCASE_UPPERを指定することで、キーが大文字に変換されます。

入れ子配列(多次元配列)には効果がない

$array = [
    "User" => ["Name" => "Jiro", "Age" => 25],
    "Country" => "Japan"
];
$result = array_change_key_case($array);
print_r($result);

出力結果:

Array
(
    [user] => Array
        (
            [Name] => Jiro
            [Age] => 25
        )
    [country] => Japan
)

注意点として、array_change_key_caseは多次元配列のキーには再帰的に処理を行わないため、内側の配列のキーは変換されません。

関連する関数

  • array_keys — 配列のすべてのキーを取得する
  • array_map — 配列の要素にコールバックを適用する
  • array_change_key_caseと組み合わせて使うユーザー定義の再帰関数 — 多次元配列のキーを再帰的に変換

まとめ

array_change_key_caseは、配列のキーを簡単に大文字・小文字に統一したい場合に便利です。単一階層の配列で特に効果的ですが、多次元配列では内側のキーは変換されないことに注意しましょう。APIレスポンスの整形やデータの一貫性を保つ際に役立つ関数です。