1

最終的にxmlとして出力される3d php配列を構築しようとしています...これは、概念を証明するために使用しようとしているコードです...

$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>

実際には、リンゴとオレンジの配列はそれ自体が 3 次元のものになります... eBay の API を使用したことがあるなら、私が何をしようとしているのかがわかるでしょう (と思います)。

4

2 に答える 2

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>
于 2012-09-07T03:41:38.860 に答える
0

以下の URL を参照してください。私はそれがあなたに十分に役立つと思います:-

配列を SimpleXML に変換する方法

または試してみてください:-

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($test_array, array ($xml, 'addChild'));
print $xml->asXML();
于 2012-09-06T12:52:58.157 に答える