xml を配列に変換する問題
既存の xml は次のとおりです。
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <root> <rows> <errMsg text=""/> <retValue text="true"/> </rows> <records> <productno text="000321"/> <billno text=""/> <orderno text="D004410439"/> <out_trade_no text="100001"/> <plcprem text="0.0"/> <orderprem text="50.0"/> <commision text="0.0"/> </records> .... <root>
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> Array ( [rows] => Array ( [errMsg] => [retValue] => true ) [records] => Array ( [productno] =>000321 [billno] => [orderno] =>D004410439 [out_trade_no] => 100001 [plcprem] =>0.0 [orderprem] =>50.0 [commision] =>0.0 ) ..... )
$s =<<< <ルート> <行> <errMsg text=""/> <retValue text="true"/> </行> <記録> <製品番号テキスト="000321"/> <請求書テキスト=""/> <orderno text="D004410439"/> <out_trade_no text="100001"/> <plcprem text="0.0"/> <orderprem text="50.0"/> <コミッションテキスト="0.0"/> </レコード> </root> XML。 $obj = simplexml_load_string($s); $r = 配列(); foreach($obj as $name=>$nodes) { foreach($nodes as $k=>$v) { $t = (配列)$v->属性()->テキスト; $r[$name][$k] = $t[0]; } } print_r($r); <br><font color="#e78608">------解決策---------</font><br>