將多維php陣列轉換為XML檔案或以字串輸出
阿新 • • 發佈:2019-02-18
<?php // 函式將多維陣列轉換成xml,內部為工廠方法,遞迴 function array_to_XML($obj, $array) { foreach ($array as $k => $v) { if(is_numeric($k)) $k = 'item' . $k; if(is_array($v)){ $node = $obj->addChild($k); array_to_XML($node, $v); }else{ $obj->addChild($k, htmlspecialchars($v)); } } } //定義一個多維陣列 $test_array = array ( '0' => array ( 'id' => 'Y-107', 'M' => array ( 'name' =>'EVE', 'status' => 'Open', 'age' => 0, 'address' => array ( 'city' => 'shang hai' ) ), 'profile' => array ( 'color_code' =>'Desert theme', 's_code' => 'ys77638' ) ), '1' => array ( 'id' => 'Y-108', 'M' => array ( 'name' => 'SC2', 'status' => 'Open', 'age' => 10, 'address' => array ( 'city'=>'bei jing' ) ), 'profile' => array ( 'picture' => '3.gif', 's_key' => 'scasdf45155' ) ) ); // 建立新的simpleXML例項,注入記憶體,確定根節點 $xml = new SimpleXMLElement('<root/>'); // 回撥函式 array_to_XML($xml, $test_array); //直接列印(不顯示尖括號,可以看原始碼來顯示尖括號) echo $xml->asXML(); // 儲存為XML檔案 echo (($xml->asXML('data.xml')) ? 'Your XML file has been generated successfully!' : 'Error generating XML file!'); ?>