注:号码XML元素名称是不是一个好主意,所以$ your_array不应该有按键数字。
试试这个:下面
$your_array = array(
'city' => array
(
'0' => array('0' => 'Rd', '1' => 'E'),
'1' => 'B',
'2' => 'P',
'3' => 'R',
'4' => 'S',
'5' => 'G',
'6' => 'C'
),
'dis' => '1.4'
);
函数调用自身(递归),所以应该对任何深度的阵列工作。
功能使用三元运算符:
(condition) ? if true action : if false action
...检查,如果所谓的价值是数组。
如果它是数组,它会调用它自己(递归)来深入挖掘,如果值不是数组,它将被附加到XML对象,使用数组键值为元素名称和数组值赋值。
function array_to_xml(array $your_array, SimpleXMLElement $xml){
foreach ($arr as $k => $v){
is_array($v) ? array_to_xml($v, $xml->addChild($k)) : $xml->addChild($k, $v);
}
return $xml;
}
$your_xml = $this->array_to_xml($your_array, new SimpleXMLElement(''))->asXML();
现在,你的阵列是一个XML和封闭在$ your_xml变量,所以你可以用它任何你想要的。
$ your_xml输出(例如,如果你“回响”它)是这样的:
<root>
<city>
<0>
<0>Rd</0>
<1>E</1>
</0>
<1>B</1>
<2>P</2>
<3>R</3>
<4>S</4>
<5>G</5>
<6>C</6>
</city>
<dis>1.4</dis>
</root>
的
可能重复[如何数组转换为SimpleXML的(http://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml) – nickb 2012-02-05 19:22:45
看看http://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml例如 – 2012-02-05 19:23:13