2012-09-06 264 views
1

我试图建立一个3D PHP数组,最终被作为XML输出...这是我想用它来证明概念的代码...现有阵列添加到3D阵列

$test = array('apple','orange'); 
$results = Array(
    'success' => '1', 
    'error_number' => '', 
    'error_message' => '', 
    'results' => Array (
     'number_of_reports' => mysql_num_rows($run), 
     'item' => $test 
    ) 
); 

我想要的结果数组看起来像

<success>1</success> 
<error_number/> 
<error_message/> 
<results> 
    <number_of_reports>18</number_of_reports> 
    <item> 
     <0>apple</0> 
     <1>orange</1> 
    </item> 
</results> 

在现实中,苹果和橘子阵列将是一个3D本身......如果你曾经使用eBay的API ...你会有我想做什么的想法(我认为)

+3

'<0>苹果<1>橙色'那不是它应该怎样做。使用类似'苹果橙色'。 –

+2

是...?看起来应该像你想要的那样工作。你有什么问题? – deceze

+0

您的权利,应该是苹果橙色 user1639745

回答

0

看到低网址。我认为这非常使用全给你: -

How to convert array to SimpleXML

或者尝试: -

$xml = new SimpleXMLElement('<root/>'); 
array_walk_recursive($test_array, array ($xml, 'addChild')); 
print $xml->asXML(); 
+0

谢谢,我打印的数组,你这是工作权......这是我的XML输出那是一个哑弹.. – user1639745

+0

感谢感激:) –

2

试试:

代码:

<?php 
$test = array('apple','orange'); 
$results = Array(
    'success' => '1', 
    'error_number' => '', 
    'error_message' => '', 
    'results' => Array (
     'number_of_reports' => 1, 
     'item' => $test 
    ) 
); 

print_r($results); 
function addChild1($xml, $item, $clave) 
{ 
    if(is_array($item)){ 
     $tempNode = $xml->addChild($clave,''); 
     foreach ($item as $a => $b) 
     { 
      addChild1($tempNode, $b, $a); 
     }   
    } else { 
     $xml->addChild("$clave", "$item"); 
    } 
} 

$xml = new SimpleXMLElement('<root/>'); 
addChild1($xml, $results,'data'); 
$ret = $xml->asXML(); 

print $ret; 

输出:

<?xml version="1.0"?> 
<root><data><success>1</success><error_number></error_number><error_message></error_message><results><number_of_reports>1</number_of_reports><item><0>apple</0><1>orange</1></item></results></data></root>