やや挑戦的なタイトルですが
あれば便利だなぁと思った内容を課題として質問します。
一次元の配列もあれば
二次元の配列もあり
三次元の配列もあり、
配列構造がバラバラの配列があります。
$arr0 = array( "テスト", "TEST" => "てすと", array( "山田", "TEST" => "てすと", "PS4" => "FF" ), "ゲーム" => "PSP", "クワガタ", "日本" => array( "関東" => "東京", "神奈川", "九州" => "福岡", ) ); $arr1 = array( "COMMON_ID" => "9000000007", "SHOP_CD" => "", "MAIN_SHOP_FLG" =>"1", "CLASS_CD" =>"", "CLASS_TYPE" =>"01", "ENTER_SHOP_DATE" =>"20061101", "MAIN_FLAG" =>"1", "IMPORT_FLG" =>"0" ); $arr2 = array( "COMMON_ID" => "9000000017", "SHOP_CD" => "", "MAIN_SHOP_FLG" =>"1", "CLASS_CD" =>"", "CLASS_TYPE" =>"01", "ENTER_SHOP_DATE" =>"20061101", "MAIN_FLAG" =>"1", "IMPORT_FLG" =>"0" ); $arr = array( "映画", "テレビ" => "アクオス", $arr0, $arr1, $arr2);
こうなります。
array(5) { [0]=> string(6) "映画" ["テレビ"]=> string(12) "アクオス" [1]=> array(6) { [0]=> string(9) "テスト" ["TEST"]=> string(9) "てすと" [1]=> array(3) { [0]=> string(6) "山田" ["TEST"]=> string(9) "てすと" ["PS4"]=> string(2) "FF" } ["ゲーム"]=> string(3) "PSP" [2]=> string(12) "クワガタ" ["日本"]=> array(3) { ["関東"]=> string(6) "東京" [0]=> string(9) "神奈川" ["九州"]=> string(6) "福岡" } } [2]=> array(8) { ["COMMON_ID"]=> string(10) "9000000007" ["SHOP_CD"]=> string(0) "" ["MAIN_SHOP_FLG"]=> string(1) "1" ["CLASS_CD"]=> string(0) "" ["CLASS_TYPE"]=> string(2) "01" ["ENTER_SHOP_DATE"]=> string(8) "20061101" ["MAIN_FLAG"]=> string(1) "1" ["IMPORT_FLG"]=> string(1) "0" } [3]=> array(8) { ["COMMON_ID"]=> string(10) "9000000017" ["SHOP_CD"]=> string(0) "" ["MAIN_SHOP_FLG"]=> string(1) "1" ["CLASS_CD"]=> string(0) "" ["CLASS_TYPE"]=> string(2) "01" ["ENTER_SHOP_DATE"]=> string(8) "20061101" ["MAIN_FLAG"]=> string(1) "1" ["IMPORT_FLG"]=> string(1) "0" } }
これを全て1次元配列に整形するメソッドを作りなさい。
メソッドの引数は1つのみとします。
一次配列に整形したとき、添え字は設定されているものを維持していなければなりません。
可能であれば何次元の配列であろうと(20次元や100次元)全て一次元に整形するものを作れるのが望ましいですが、本課題では三次元配列まで整形できれば良いものとします。
作りかけのメソッド
public function log_push($msg, $endNunber=null, $arr=null) { if($this->cfg_set['DEBUG_MODE_PUSH']) { //表示形式:テストモード foreach ($arr as $key => $value) { if(is_array($value)) { //二次配列のキーを取得したいが二次配列の1つ目のキーしか取得できない echo key($value)."<br>"; } else { $result[] = $value; } } $this->var_dumpre($result); echo "******************************************"; //受け取った配列 $this->var_dumpre($arr); } else { ////表示形式:ノーマルモード } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/21 15:43
退会済みユーザー
2016/12/21 15:45
退会済みユーザー
2016/12/21 16:06