递归实现php数组转xml的代码分享

PHP大校数组转为xml的急需是普遍的,并且落到实处况势也可能有过多样,百度找了生龙活虎晃各类达成格局,可是基本是借组一些零器件啥的。作者就和好写了八个字符串拼组的方式,协理多维数组。仅供参照他事他说加以考查,白玉微瑕敬请多多关照!

PHP中遍历数组有二种常用的诀要:
风流倜傥、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合利用list(卡塔尔国、each(State of Qatar和while循环遍历数组。
那三种方法中功用最高的是利用foreach语句遍历数组。从PHP4初阶就引进了foreach布局,是PHP中非常为遍历数组而规划的话语,推荐大家使用。先分别介绍这两种办法。

/**
*  将数组转换为xml
*  @param array $data  要转换的数组
*  @param bool $root   是否要根节点
*  @return string     xml字符串
*  @author Dragondean
*  @url  http://www.cnblogs.com/dragondean
*/
function arr2xml($data, $root = true){
  $str="";
  if($root)$str .= "";
  foreach($data as $key => $val){
    if(is_array($val)){
      $child = arr2xml($val, false);
      $str .= "$child$key>";
    }else{
      $str.= "$key>";
    }
  }
  if($root)$str .= "";
  return $str;
}

风流浪漫、使用for语句循环遍历数组 值得大家留意的是使用for语句循环遍历数组须要遍历的数组必得是索引数组。PHP中不但有关联数组同一时候还应该有索引数组,所以PHP中非常少用for语句循环遍历数组。
实例代码如下:
复制代码 代码如下:
$arr = array(”);
$num = count($arr);
for($i=0;$iecho $arr[$i].’
‘;
}
?>

地点是落实的艺术,第一个参数是您要转移的数组,第一个可选参数设定是或不是需求加根节点,暗许是内需的。

解说:上例代码中我们先总结出数组$arr瓜月素的个数,然后才使用在for语句,那样做很便捷的。因为生机勃勃旦是for($i=0;$i<
count($arrState of Qatar;++$i)的话,每一回循环都会总计数组$arr霜月素的个数,而利用方面包车型大巴情势得以缩短这种支付。使用++$i也是为着进步成效,前边有成文大家提到过,提议我们再看看。
地方代码的输出结果为:

剧本之家
PHP教程

测验代码:

二、使用foreach语句遍历数组 运用foreach语句循环遍历数组有三种办法,大家采取的最多的还是率先种艺术。介绍如下:
首先种办法:
foreach(array_expression as $value){
//循环体
}
实例代码:
复制代码 代码如下:
$arr = array(”);
foreach($arr as $value){
echo $value.’
‘;
}
?>

复制代码 代码如下:
$arr=array(‘a’=>’aaa’,’b’=>array(‘c’=>’1234’ , ‘d’ =>
“asdfasdf”));
echo arr2xml($arr);

历次循环中,当前因素的值被赋给变量$value,况且把数组内部的指针向后移动一步。所以下一回巡回中会得到数组的下三个要素,直到数组的终极才止住循环,甘休数组的遍历。

代码奉行后的结果为:

其次种方法: foreach(array_expression as $key=>$value){
//循环体
}
实例代码:
复制代码 代码如下:
//定义数组
$arr = array(”);
foreach($arr as $k=>$v){
echo $k.”=>”.$v.”
“;
}
?>

复制代码 代码如下:

三、联合利用list(State of Qatar、each(卡塔尔国和while循环遍历数组
each(卡塔尔国函数供给传递三个数组作为叁个参数,重临数组中当前成分的键/值对,并向后活动数组指针到下三个因素的职位。
list(卡塔尔(قطر‎函数,那不是二个实在的函数,是PHP的贰个言语构造。list(卡塔尔(قطر‎用一步操作给黄金年代组变量进行赋值。

如上所述正是本文的全体内容了,希望我们可以赏识。

实例代码:
复制代码 代码如下:
//定义循环的数组
$arr =
array(‘website’=>”)
while(list($k,$v) = each($arr)){
echo $k.’=>’.$v.’
‘;
}
?> jb51.net

出口结果为:
website=>
webname=>PHP程序员

小结:上述二种循环遍历数组的方式中国建工业总会公司议我们利用foreach语句循环遍历数组,作用更加高。

发表评论

电子邮件地址不会被公开。 必填项已用*标注