多次元連想配列から、取得したい要素のキーを格納した配列を用いて要素を取得したいです。
自身で関数を書いてみましたが、より良い方法等あればご教授いただきたいです。
多次元連想配列の次元数は決まっていません。
キー配列は階層順にキーを格納したものです。
PHP
1// 対象の多次元連想配列 2$data = array( 3 'key0' => array( 4 'key1' => array( 5 'key2' => 'data0', 6 'key3' => 'data1' 7 ) 8 ), 9 'key4' => array( 10 'key5' => array( 11 'key6' => 'data2' 12 ) 13 ) 14); 15 16// 取得したいデータのキー配列 17// $data['key0']['key1']['key3']のデータの場合 18$keySet = array('key0', 'key1', 'key3'); 19 20// 'data1'が取得したい 21$result = ArraySearchFromKeySet($data, $keySet); 22 23// 作成した関数 24// キーが存在しない場合などの例外処理は除いています 25function ArraySearchFromKeySet($array, $keySet) { 26 $key = $keySet[0]; 27 unset($keySet[0]); 28 $keySet = array_values($keySet); 29 if(is_array($array[$key])) { 30 return ArraySearchFromKeySet($array[$key], $keySet); 31 } 32 else { 33 return $array[$key]; 34 } 35}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/12/02 05:30