array(2) { ["id"]=> string(7) "A00001m" ["name"]=> string(7) "Michael" } array(2) { ["ID"]=> string(7) "A00001m" ["NAME"]=> string(7) "Michael" }
連想配列のキーの大文字・小文字を切り替える方法
スポンサーリンク
PHP で連想配列(ハッシュ)のキーの大文字・小文字を変更するには、 array_change_key_case を使用します。
通常の配列の場合(一次元配列)
キーを大文字に揃えたい場合は第二引数に CASE_UPPER を、小文字に揃えたい場合は CASE_LOWER を指定します。(第二引数を省略した場合は CASE_LOWER になります。)
サンプルコードは次の通りです。
php(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ary = array( "Id" => "A00001m", "Name" => "Michael" ); // 連想配列のキーを小文字にそろえる。 $ary = array_change_key_case($ary, CASE_LOWER); var_dump($ary); // 連想配列のキーを大文字にそろえる。 $ary = array_change_key_case($ary, CASE_UPPER); var_dump($ary); |
上記の実行結果は次の通りです。
多次元配列の場合
二次元配列やそれ以上の次元をもつ連想配列のキーについて大文字・小文字を一括で切り替えるサンプルコードです。
サンプルコードでは独自の関数を定義して再帰的に array_change_key_case を適用しています。(array_walk_recursive ではキーの更新ができない為、 foreach で再帰的に処理します。)
php(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | $ary = array( array("Key1" => "Val1", "Key2" => "Val2"), array( array("Key3" => "Val3"), array( array("Key4" => "Val4", "Key5" => "Val5"), array("Key6" => "Val6"), ) ), array("Key7" => "Val7", "Key8" => "Val8"), ); // 多次元配列のキーを小文字にそろえる。 $ary = array_change_key_case_recursive($ary, CASE_LOWER); print "◆キーを小文字に揃えた結果" . PHP_EOL; var_dump($ary); // 多次元配列のキーを大文字にそろえる。 $ary = array_change_key_case_recursive($ary, CASE_UPPER); print "◆キーを大文字に揃えた結果" . PHP_EOL; var_dump($ary); // 配列を再帰的に探索し array_change_key_case を適用する関数 function array_change_key_case_recursive($ary, $case = CASE_LOWER){ if(is_array($ary)){ $ary = array_change_key_case($ary, $case); } foreach($ary as $key => $val){ if(is_array($val)){ $ary[$key] = array_change_key_case_recursive($val, $case); } } return $ary; } |
上記の実行結果は次の通りです。
◆キーを小文字に揃えた結果 array(3) { [0]=> array(2) { ["key1"]=> string(4) "Val1" ["key2"]=> string(4) "Val2" } [1]=> array(2) { [0]=> array(1) { ["key3"]=> string(4) "Val3" } [1]=> array(2) { [0]=> array(2) { ["key4"]=> string(4) "Val4" ["key5"]=> string(4) "Val5" } [1]=> array(1) { ["key6"]=> string(4) "Val6" } } } [2]=> array(2) { ["key7"]=> string(4) "Val7" ["key8"]=> string(4) "Val8" } } ◆キーを大文字に揃えた結果 array(3) { [0]=> array(2) { ["KEY1"]=> string(4) "Val1" ["KEY2"]=> string(4) "Val2" } [1]=> array(2) { [0]=> array(1) { ["KEY3"]=> string(4) "Val3" } [1]=> array(2) { [0]=> array(2) { ["KEY4"]=> string(4) "Val4" ["KEY5"]=> string(4) "Val5" } [1]=> array(1) { ["KEY6"]=> string(4) "Val6" } } } [2]=> array(2) { ["KEY7"]=> string(4) "Val7" ["KEY8"]=> string(4) "Val8" } }
スポンサーリンク
- 配列
- 配列を初期化する方法
- 多次元配列内の全ての文字列を一括で置換する方法
- 配列内の全ての文字列を一括で置換する方法
- 連想配列のキーの大文字・小文字を切り替える方法
- 配列の要素数を確認する方法
- foreach で配列の全ての要素を処理する方法
- 配列を並べ替える方法(ソートする方法)
- 連想配列(ハッシュ)を使用する方法
- 連想配列から特定のキーの値を取り出して配列を作成する方法
- 連想配列(ハッシュ)に指定したキーが存在するかを確認する方法
- 連想配列(ハッシュ)のキーの一覧を取得する方法
- 二次元配列のインデックスを特定のキーの値に置き換える方法
- 二次元配列を複数のキーを指定して並べ替える方法
- 二次元配列をソートキーを指定して並び替える方法
- 配列を CSV に変換し、必要なエスケープを行う