第一种方法:源码如下。
<?php
$elementLevel = 0 ;
function array_ ($array, $keys = \'\')
{
global $elementLevel;
if(!is_array($array))
{
if($keys == \'\'){
return $array;
}else{
return \"\\n<$keys>\" . $array . \"</$keys>\\n\";
}
}else{
foreach ($array as $key => $value)
{
$haveTag = true;
if (is_numeric($key))
{
$key = $keys;
$haveTag = false;
}
/* http://www.manongjc.com/article/1586.html */
if($elementLevel == 0 )
{
$startElement = \"<$key>\";
$endElement = \"</$key>\";
}
$text .= $startElement;
if(!$haveTag)
{
$elementLevel++;
$text .= \"<$key>\" . array_ ($value, $key). \"</$key>\\n\";
}else{
$elementLevel++;
$text .= array_ ($value, $key);
}
$text .= $endElement;
}
}
return $text;
}
$array = array(
\"employees\" => array(
\"employee\" => array(
array(
\"name\" => \"name one\",
\"position\" => \"position one\"
),
array(
\"name\" => \"name two\",
\"position\" => \"position two\"
),
array(
\"name\" => \"name three\",
\"position\" => \"position three\"
)
)
)
);
echo array_ ($array);
?>
第二种方法:
这种方法可以支持多维数组
test.php
<?php
include \'./ArrayTo .php\';
header(\'Content-Type: text/ \');
$data=array(\"name\"=>\"zhangsan\",\"sex\"=>\"0\",\"address\"=>array(\"sheng\"=>\"chongqing\",\"shi\"=>\"nanchuan\",\"zhen\"=>\"daguan\"));
echo ArrayTo ::to ($data);
?>
处理代码:ArrayTo .php
<?php
class ArrayTo
{
/**
* The main function for converting to an document.
* Pass in a multi dimensional array and this recrusively loops through and builds up an document.
*
* @param array $data
* @param string $rootNodeName - what you want the root node to be - defaultsto data.
* @param Simple Element $ - should only be used recursively
* @return string
*/
public static function to ($data, $rootNodeName = \'data\', $ =null)
{
// turn off compatibility mode as simple throws a wobbly if you don\'t.
if (ini_get(\'zend.ze1_compatibility_mode\') == 1)
{
// http://www.manongjc.com
ini_set (\'zend.ze1_compatibility_mode\', 0);
}
if ($ == null)
{
$ = simple _load_string(\"<? version=\'1.0\' encoding=\'utf-8\'?><$rootNodeName />\");
}
// loop through the data passed in.
foreach($data as $key => $value)
{
// no numeric keys in our please!
if (is_numeric($key))
{
// make string key...
$key = \"unknownNode_\". (string) $key;
}
// replace anything not alpha numeric
$key = preg_replace(\'/[^a-z]/i\', \'\', $key);
// if there is another array found recrusively call this function
if (is_array($value))
{
$node = $ ->addChild($key);
// recrusive call.
ArrayTo ::to ($value, $rootNodeName, $node);
}
else
{
// add single node.
$value = htmlentities($value);
$ ->addChild($key,$value);
}
}
// pass back as string. or simple if you want!
return $ ->as ();
}
}
上面两种方法都可以实现将数组转化为 ,希望对大家有一定的帮助。
继续阅读与本文标签相同的文章
-
互联网之光大会的黑科技,总有一款惊艳你!
2026-05-14栏目: 教程
-
微信宣布一项新举措,关系到每一个用户,网友一致力挺:干得漂亮!
2026-05-14栏目: 教程
-
微软建议企业客户卸载KB4520062累积更新
2026-05-14栏目: 教程
-
他让我国芯片研究停滞13年,还骗走11亿研发资金,现状如何?
2026-05-14栏目: 教程
-
健乐教学机器人可开展的教学实训内容
2026-05-14栏目: 教程
