首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中将多个数组转换为XML

在PHP中将多个数组转换为XML
EN

Stack Overflow用户
提问于 2015-01-20 03:57:17
回答 2查看 148关注 0票数 1

我有两个数组,下面是第一个:

代码语言:javascript
复制
Array
(
    [0] => BWY DL
    [1] => SP_GPON
)
//Array 1

这是最后一个:

代码语言:javascript
复制
Array
    (
        [0] => Two Way
        [1] => Ultimated
    )
//Array 2

它们都将被转换为XML。我想要的格式:

代码语言:javascript
复制
<data>
   <citem>BWY DL</citem> //from array 1, array[0]
   <desc>Two Way</desc> //from array 2, array[0]
</data>
<data>
   <citem>SP_GPON</citem> //from array 1, array[1]
   <desc>Ultimated</desc> //from array 2, array[1]
</data>

我的转换代码:

代码语言:javascript
复制
$xml = new SimpleXMLElement('<data/>');
    array_walk_recursive($value, array ($xml, 'addChild'));
    array_walk_recursive($desc, array ($xml, 'addChild'));
    $output=$xml->asXML();

print_r($output); 

但它提供了:

代码语言:javascript
复制
<?xml version="1.0"?>
<data>
  <BWY DL>0</BWY DL>
  <Two Way>0</Two Way>
  <SP_GPON>1</SP_GPON>
  <Ultimated>1</Ultimated>
</data>

我不知道怎么把它们设置成格式。希望有人能帮我。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-20 08:52:55

我不知道它是否适合你的要求。如果您的数组是固定长度的,并且格式总是相同的:

代码语言:javascript
复制
function convert($array) {
    $format = "<data><citem>%s</citem><desc>%s</desc></data>";
    return sprintf($format, $array[0], $array[1]);
}

因此,如果您有这样的数组:$array1 = array("citem1", "desc1"); $array2 = array("citem2", "desc2");

代码语言:javascript
复制
echo convert($array1); // <data><citem>citem1</citem><desc>desc1</desc></data>
echo convert($array2); // <data><citem>citem2</citem><desc>desc2</desc></data>

希望能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2015-01-20 15:39:57

一个简单的解决方案是一个for循环,它不专注于组合数组或利用本机数组函数。

代码语言:javascript
复制
$xml = '';
$format = '<data><citem>%s</citem><desc>%s</desc></data>';
$count = count($array1);

for ($i = 0; $i < $count; ++$i) {
    $xml = sprintf($format, $array1[$i], $array2[$i]);
}

echo $xml;

注:--这假定数组的长度相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28037529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档