-1

我希望我的函数将维度 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;

}

4

1 回答 1

1

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

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

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

于 2012-07-31T13:31:19.590 回答