前提・実現したいこと
現在PHPで配列のキーを指定して検索元の配列から指定されたキーのみの
配列に変換するメソッドを作成しています。
現状、見た目的にはできたのですが、以下のサンプルコードでは不便な箇所があります。
例えば検索元の配列が以下の場合だったとします
PHP
1$hoge = array("INFO"=>array( 2"NAME"=>"APPLE", 3"FOOD INFO" =>array("NAME"=>"APPLE_JUICE"); 4)) 5 6 7getSpecificValuesOverwrite($hoge,array("NAME"));
上記のようにNAMEを指定した場合、同一のキーは上書きをしてしまうので最終的にとれるのはAPPLE_JUICEになってしまいます。
これをどうにかNAME、"FOOD_INFOのNAME"で切り分けて取得できるような仕組みに置き換えたいのですが良い方法を思いつきません。
何かアドバイス等あればご教授お願い致します。
サンプルコード
PHP
1public static function getSpecificValuesOverwrite($serch_arrays,$serch_key_list) 2{ 3 $result = array(); 4 foreach($serch_arrays as $serch_array) 5 { 6 //配列だった場合 7 if(is_array($serch_array)) 8 { 9 //再帰的に関数を呼び出し、値を格納 10 $result = self::getSpecificValuesOverwrite($serch_array,$serch_key_list); 11 } 12 } 13 14 //指定したキーの数だけループ 15 foreach($serch_key_list as $key) 16 { 17 foreach($serch_arrays as $serch_array) 18 { 19 //指定したキーであれば 20 if(array_key_exists($key,(array)$serch_array)) 21 { 22 $result[$key] = $serch_array[$key]; 23 } 24 } 25 } 26 27 return $result; 28}
細かいところですが、サーチ(search)のスペルが違っているのが気になります……
回答1件
あなたの回答
tips
プレビュー