php数组到xml使用递归

时间:2012-07-31 13:29:24

标签: php

我希望我的函数将维度N的数组转换为xml,但它不起作用。 任何人都能指出我正确的方向吗?

function arrayToXml($array,$render = ""){
if(!is_array($array)){
    return $array;
}
foreach ($array as $key => $value) {
    if(is_array($value)){
        $render .= '<' . $key . '>';
        arrayToXml($value,$render);
    }
    else {
        $render .= '<' . $key . '>';
        $render .= $value;
        $render .=  '</' . $key . '>';
    }
}
return $render;

}

好的,我找到了解决方案:

function arrayToXml($array,$render = ""){
if(!is_array($array)){
    return $array;
}
foreach ($array as $key => $value) {
    if(is_array($value)){
        $render .= '<' . $key . '>';
        $render = arrayToXml($value,$render);
        $render .=  '</' . $key . '>';
    }
    else {
        $render .= '<' . $key . '>';
        $render .= $value;
        $render .=  '</' . $key . '>';
    }
}
return $render;

}

1 个答案:

答案 0 :(得分:1)

您没有使用arrayToXml($value,$render);的返回值,但您也需要将其指定给$render

// …
if(is_array($value)){
    $render .= '<' . $key . '>';
    $render .= arrayToXml($value,$render);
}

另请注意,可以在Web上找到大量可立即使用的脚本,以将PHP数组转换为XML。例如http://snipplr.com/view/3491/