Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将simpleXML字符串转换为数组_Php_Arrays_Simplexml - Fatal编程技术网

Php 如何将simpleXML字符串转换为数组

Php 如何将simpleXML字符串转换为数组,php,arrays,simplexml,Php,Arrays,Simplexml,我从一个SQL表中提取关键字,该表返回一个simpleXML字符串,如下所示: 阿拉巴马州 1. 阿拉斯加州 2. 亚利桑那州 3. 现在我需要一个数组的形式,我可以将它存储为变量 有人能告诉我如何做到这一点吗? 我对数组非常陌生,不知道如何从这里开始,因为每个标记总是有两个值,即标记名和标记ID,而我只需要一个带有标记名的数组。 理想情况下,结果应如下所示: $tags=['Alabama'、'Alaska'、'Arizona']; 使用此功能: function xml_to_array

我从一个SQL表中提取关键字,该表返回一个simpleXML字符串,如下所示:


阿拉巴马州
1.
阿拉斯加州
2.
亚利桑那州
3.
现在我需要一个数组的形式,我可以将它存储为变量

有人能告诉我如何做到这一点吗? 我对数组非常陌生,不知道如何从这里开始,因为每个标记总是有两个值,即标记名和标记ID,而我只需要一个带有标记名的数组。 理想情况下,结果应如下所示:

$tags=['Alabama'、'Alaska'、'Arizona'];
使用此功能:

function xml_to_array($xml,$main_heading = '') {
    $deXml = simplexml_load_string($xml);
    $deJson = json_encode($deXml);
    $xml_array = json_decode($deJson,TRUE);
    if (! empty($main_heading)) {
        $returned = $xml_array[$main_heading];
        return $returned;
    } else {
        return $xml_array;
    }
}
您可以通过以下代码生成XML数组:

    $simple = 'your xml';
    $data_array = xml_to_array($simple);

如果XML是单个文件,请使用file_get_contents()获取文件内容

谢谢-我会检查这是否适合我。