現在の位置: ホーム> 最新記事一覧> array_change_key_case()は配列の値に影響しますか?

array_change_key_case()は配列の値に影響しますか?

M66 2025-04-26

PHPでは、 array_change_key_case()は非常に実用的な機能であり、関連する配列のキー名を大文字または小文字に変換するためによく使用されます。実際に使用すると、一部の開発者は不思議に思うでしょう:この機能?

答えは次のとおりです。はい、 array_change_key_case()は、配列のキー名を変更するだけで、値を処理しません

基本的な構文

array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $配列:処理する元の配列。

  • $ case :キー名変換の方法、デフォルトはcase_lowerです。Case_upperを選択できます。

例1:キー名は小文字になり、値は変更されません

$data = [
    "Name" => "Alice",
    "Email" => "alice@m66.net",
    "AGE" => 25
];

$lowerKeys = array_change_key_case($data, CASE_LOWER);

print_r($lowerKeys);

出力結果:

 Array
(
    [name] => Alice
    [email] => alice@vv99.net
    [age] => 25
)

ご覧のとおり、キー名は小文字になりましたが、値はまだ元のコンテンツであり、変更されていません。

例2:キー名が大文字になり、値には配列とURLが含まれます

$user = [
    "username" => "bob",
    "profile" => [
        "email" => "bob@m66.net",
        "website" => "https://m66.net/user/bob"
    ]
];

$upperKeys = array_change_key_case($user, CASE_UPPER);

print_r($upperKeys);

出力結果:

 Array
(
    [USERNAME] => bob
    [PROFILE] => Array
        (
            [email] => bob@vv99.net
            [website] => https://m66.net/user/bob
        )
)

Array_Change_Key_Case()はネストされた配列のキー名を再帰的に処理しないため、プロファイルはネストされた配列であり、そのキー名は変換されません。

まとめ

  • array_change_key_case()は、配列のキー名を変更しますが、値は移動しません。

  • ?ネストされた配列のキー名を再帰的に処理することはありません。

  • ??文字列、URL、アレイ、またはその他のタイプであろうと、値の内容はそのまま保存されます。

したがって、キー名(小文字など)のケースを標準化するだけで、配列に保存されたデータを変更したくない場合は、 array_change_key_case()は非常に安全で信頼性の高いツールです。