###前提・実現したいこと
いつもお世話になっております。
XMLを読み込んだ時に$data['room']が配列の場合と配列じゃない場合で今まで分岐させていましたが、分岐させずに同じコードで処理するスマートな方法はないでしょうか。
今までだと、配列の場合と配列じゃない場合でほとんど同じ内容のコードを書いていたのですが、一部を変更した際に2か所直す必要がありました。
このままでも動くので問題ないのですが、もっとスマートに処理したいです。
###該当のソースコード
$url_cd = 0000;//IDを渡します $detail = "http://api.jp/?key=000&city_cd=" . $url_cd; $xml = simplexml_load_file($detail); $data = get_object_vars($xml); if (is_array($data['room'])) { //$data['room']が配列の場合の処理 }else{ //$data['room']が配列じゃない場合の処理 }
XMLの中身は下記のようになっていますが、SimpleXMLElement Object以降の要素名は一緒です。
XMLを呼び出した時に、エリア内(city_cd)で要素名にroomを持つものが、複数あるかどうかで、以下のように$data['room']の中身が変わります。
###配列の場合の$data['room']の中身(先頭部分)
Array ( [0] => SimpleXMLElement Object ( [room_cd] => ・・・
###配列じゃない場合の$data['room']の中身(先頭部分)
SimpleXMLElement Object ( [room_cd] => ・・・
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/25 06:23
2016/07/25 06:30
2016/07/25 06:39