幸運的是,我只是爲自己寫這樣的東西......基本上你提供了一個你想使用的元素列表,默認情況下它將使用它們的鍵/索引。希望這可以幫助。
<?PHP
class Serializer
{
private static function getTabs($tabcount)
{
$tabs = '';
for($i = 0; $i < $tabcount; $i++)
{
$tabs .= "\t";
}
return $tabs;
}
private static function asxml($arr, $elements = Array(), $tabcount = 0)
{
$result = '';
$tabs = self::getTabs($tabcount);
foreach($arr as $key => $val)
{
$element = isset($elements[0]) ? $elements[0] : $key;
$result .= $tabs;
$result .= "<" . $element . ">";
if(!is_array($val))
$result .= $val;
else
{
$result .= "\r\n";
$result .= self::asxml($val, array_slice($elements, 1, true), $tabcount+1);
$result .= $tabs;
}
$result .= "</" . $element . ">\r\n";
}
return $result;
}
public static function toxml($arr, $root = "xml", $elements = Array())
{
$result = '';
$result .= "<" . $root . ">\r\n";
$result .= self::asxml($arr, $elements, 1);
$result .= "</" . $root . ">\r\n";
return $result;
}
}
$arr = Array (
0 => Array
(
'Key1' => 'value1',
'Key2' => 'value2',
'Key3' => 'value3',
'Key4' => 'value4',
),
1 => Array
(
'Key1' => 'value1',
'Key2' => 'value2',
'Key3' => 'value3',
'Key4' => 'value4',
),
2 => Array
(
'Key1' => 'value1',
'Key2' => 'value2',
'Key3' => 'value3',
'Key4' => 'value4',
),
);
?>
實施例1
echo Serializer::toxml($arr, "xml", array("result"));
//output
<xml>
<result>
<Key1>value1</Key1>
<Key2>value2</Key2>
<Key3>value3</Key3>
<Key4>value4</Key4>
</result>
<result>
<Key1>value1</Key1>
<Key2>value2</Key2>
<Key3>value3</Key3>
<Key4>value4</Key4>
</result>
<result>
<Key1>value1</Key1>
<Key2>value2</Key2>
<Key3>value3</Key3>
<Key4>value4</Key4>
</result>
</xml>
〔實施例2
echo Serializer::toxml($arr, "xml", array("result", "item"));
// output
<xml>
<result>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</result>
<result>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</result>
<result>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</result>
</xml>
實施例3
echo Serializer::toxml($arr, "xml", array(null, "item"));
// output
<xml>
<0>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</0>
<1>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</1>
<2>
<item>value1</item>
<item>value2</item>
<item>value3</item>
<item>value4</item>
</2>
</xml>
你想爲JSON完全相同的對象結構,你已經列出的XML? –
是的..基本上我只是想在該數組中構造輸出,並根據需要(xml或json)我想簡單地將數組編碼爲xml或json – Kartik