天天看点

php 数组和xml互转

/**
 * 数组转XML
 * @param array $arr 数组
 * @return string
 * @author zayn
 * @date 2021-01-26
 */
function arrayToXml(array $arr): string
{
    $xml = "<xml>";
    foreach ($arr as $key => $val) {
        if (is_numeric($val)) {
            $xml .= "<" . $key . ">" . $val . "</" . $key . ">";
        } else {
            $xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">";
        }
    }
    $xml .= "</xml>";
    return $xml;
}

/**
 * xml转数组
 * @param $xml
 * @return array
 * @author zayn
 * @date 2021-01-26
 */
function xmlToArray($xml): array
{
    return (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
}