2012-09-06 46 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>