php xml 转array 函数 (原创)

    /**
     *Author zhudongchang
     *Date 2015/6/12
     *xml 转array 函数
     *@param string $xmlStr xml字符串
     *@return string
     */
   function convertXmlToArray($xmlStr){
        $patten=<<<EOT
/(^\s*<(\s*[a-zA-Z0-9_=‘":]+\s*)+>.*<\s*\/(\s*[a-zA-Z0-9_=‘":]+\s*)+>\s*$)|(^\s*<(\s*[a-zA-Z0-9_=‘":]+\s*)+\/\s*>$)/s
EOT;
        $pattenChildXml=<<<EOT
/^\s*<(\s*[a-zA-Z0-9_=‘":]+\s*)+>(.*)<\s*\/(\s*[a-zA-Z0-9_=‘":]+\s*)+>\s*$/s
EOT;
        $res=array();
        $xml = simplexml_load_string($xmlStr);
        foreach($xml->children() as $val){
            $key=$val->getName();
            $valXml=$val->asXML();
            preg_match($pattenChildXml,$valXml,$match);
            $childXmlStr=$match[2];
            $temp=preg_match($patten,$childXmlStr)?convertXmlToArray($valXml):(string)$val;
            if(array_key_exists($key,$res)){
                is_array($res[$key]) or $res[$key]=array($res[$key]);
                $res[$key]=array_merge($res[$key],$temp);
            }else{
                $res[$key]=$temp;
            }
        }
        return $res;
    }
时间: 2024-10-14 08:07:56

php xml 转array 函数 (原创)的相关文章

PHP 5 Array 函数

PHP Array 函数允许您访问并操作数组. 支持简单的数组和多维数组. 安装 PHP Array 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP 5 Array 函数 函数 描述 array() 创建数组. array_change_key_case() 返回其键均为大写或小写的数组. array_chunk() 把一个数组分割为新的数组块. array_column() 返回输入数组中某个单一列的值. array_combine() 通过合并两个数组(一个为键名数组,一

PHP XML To Array将XML转换为数组

1 // Xml 转 数组, 包括根键,忽略空元素和属性,尚有重大错误 2 function xml_to_array( $xml ) 3 { 4 $reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/"; 5 if(preg_match_all($reg, $xml, $matches)) 6 { 7 $count = count($matches[0]); 8 $arr = array(); 9 for($i

R语言数组array函数

数组是一个可以在两个以上的维度存储数据的R数据对象.例如 - 如果创建尺寸(2,3,4)的数组,那么创建4个矩形矩阵每2行3列.数组只能存储数据类型. 使用 array()函数创建数组.它需要向量作为输入,并使用 dim 参数的值,以创建一个数组. 示例 例子下面将创建的每两个3×3矩阵的数组,具有3行3列. # Create two vectors of different lengths. vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15

PHP Array 函数

PHP Array 简介 array 函数允许您对数组进行操作. PHP 支持单维和多维的数组.同时提供了用数据库查询结果来构造数组的函数. 安装 array 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP Array 函数 PHP:指示支持该函数的最早的 PHP 版本. 函数 描述 PHP array() 创建数组. 3 array_change_key_case() 返回其键均为大写或小写的数组. 4 array_chunk() 把一个数组分割为新的数组块. 4 arra

php基础知识【函数】(8)xml和变量函数

 一.XML函数 参数类型 data    --string,需要解析的数据集. parser  --resource,一个指向要取得字节索引的 XML 解析器的引用.  1.创建和释放XMl解析器 xml_parser_create([string encoding]) --建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄. xml_parser_free(parser) --释放指定的 XML 解析器 2.获取错误信息 xml_error_string (code) -

PHP Array函数分类

一. 数组操作的基本函数1.数组的键名和值array_values($arr);              获得数组的值array_keys($arr);                 获得数组的键名array_flip($arr);                   数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);               在数组中检索applearray_search("apple",$

PHP常用array函数汇总

一.数组操作的基本函数数组的键名和值array_values($arr);  获得数组的值array_keys($arr);  获得数组的键名array_flip($arr);  数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);  在数组中检索applearray_search("apple",$arr);  在数组中检索apple ,如果存在返回键名array_key_exists("apple&quo

php之XML转数组函数的方法

<?/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: http://www.bin-co.comphp/scripts/xml2array/ * Arguments : $contents - The XML text *                 $get_attributes - 1 or 0. If this is 1 the function wil

PHP 和 XML: 使用expat函数(一)

可扩展标识语言(Extensible Markup Language )明显是大多数开发人员将想要将其加入到他们的工具箱中的东西.XML是一种W3C的标准,它是开放的,语言中性的,API中性的,流式的,文本的,人类可读 的, 并且是一种将结构化数据带到web上的一种方法.XML是SGML的一个子集,它本身并不是一种标识 语言,但是 它允许作者来定义他们自已的标识语言,以便同分级数据保持更好的一致性. 现在,用PHP 分析XML文档已经不是一个象我以前在web和其它地方所看到的被覆盖得很深的专题了