多维PHP数组如何转换成xml格式的数据?
程序员文章站
2022-06-13 17:08:20
...
php数组 xml PHP数组是这样的:
转换成xml格式后的数据格式是这样的:
array(4) { ["auth"]=> array(3) { ["user"]=> string(8) "customer" ["password"]=> string(8) "password" ["context"]=> string(1) "4" } ["owner"]=> array(2) { ["user"]=> string(9) "customer2" ["context"]=> string(1) "4" } ["language"]=> string(2) "en" ["task"]=> array(1) { ["code"]=> string(4) "0130" } }
转换成xml格式后的数据格式是这样的:
customer password 4 customer2 4 en 0130
回复讨论(解决方案)
$ar=array( "auth"=> array ( "user"=> "customer" , "password"=> "password" , "context"=> "4" ) , "owner"=> array ( "user"=> "customer2" , "context"=> "4" ) , "language"=> "en" , "task"=> array ( "code"=> "0130" ) );$doc = new DOMDocument('1.0','UTF-8');// we want a nice output$doc->formatOutput = true;$root = $doc->createElement('request');$root = $doc->appendChild($root); foreach($ar as $title=>$title_v){ $title = $doc->createElement($title); $title = $root->appendChild($title); if(is_array($title_v)){ foreach($title_v as $k=>$v){ $k = $doc->createElement($k); $k = $title->appendChild($k); $text = $doc->createTextNode($v); $text = $k->appendChild($text); } }else{ $text = $doc->createTextNode($title_v); $text = $title->appendChild($text); }}echo $doc->saveXML();
$ar = array( "auth" => array( "user" => "customer", "password" => "password", "context" => "4", ), "owner" => array( "user" => "customer2", "context" => "4", ), "language" => "en", "task" => array( "code" => "0130", ), );$xml = simplexml_load_string('');create($ar, $xml);echo $xml->saveXML();function create($ar, $xml) { foreach($ar as $k=>$v) { if(is_array($v)) { $x = $xml->addChild($k); create($v, $x); }else $xml->addChild($k, $v); }}
customer password 4 customer2 4 en 0130