如题,最近在琢磨 php 里把数组转换为 xml 格式的字符串并且支持格式化,昨天搞了一晚上,效果始终不理想。 今天来向各位大佬求助。 我这里贴一个我随便写的数组
$arr = [
'arr1' => 'asdfasdfewrsdfwer',
'arr2' => [
'arr3' => [
'asdfasdf' => 123213,
],
'arr4' => '123123sdfsdf',
'arr5' => [
'arr6' => [
'arr7' => [
'arr8' => [
'123123',
'sadfsdf',
'aserwer53453',
'asdfwetrxcverwt',
],
],
],
],
],
];
再贴一下我写的存在问题的方法
/**
$xml = '';
foreach ($arr as $key => $value) {
$xml .= "<$key>";
if (is_array($value)) {
$deep++;
if ($format) {
$xml .= PHP_EOL;
$xml .= str_pad('', $deep * 2, ' ');
}
$xml .= arrayToXml($value, $format, $deep);
$xml .= "</$key>";
} else {
$xml .= $value;
$xml .= "</$key>";
}
if ($format) {
$xml .= PHP_EOL;
$next = next($arr);
prev($arr);
if ($next == false || is_array($next)) {
$xml .= str_pad('', ($deep - 1) * 2, ' ');
} else {
$xml .= str_pad('', $deep * 2, ' ');
}
echo is_array($next) ? ' arr ' : $next;
unset($next);
}
next($arr);
}
return $xml;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.