为了账号安全,请及时绑定邮箱和手机立即绑定

singwa老师,xml的id属性是否应该是唯一的呢?按着您的方法数组定义成这样如图

然后就会出现这样的xml,如图

,是不是代码写的不完善呢?怎么完善呢?

正在回答

1 回答

您好,谢谢您的问题,xml节点熟悉在同一个节点下是需要唯一的,刚刚看了代码,代码存在一个bug。

之前的方法:

public static function xmlToEncode($data) {

    $xml = $attr = "";
    foreach($data as $key => $value) {
	if(is_numeric($key)) {
	    $attr = " id='{$key}'";
	    $key = "item";
	}
	$xml .= "<{$key}{$attr}>";
	$xml .= is_array($value) ? self::xmlToEncode($value) : $value;
	$xml .= "</{$key}>\n";
    }
    return $xml;
}


优化后的代码:

public static function xmlToEncode($data) {

    $xml = "";
    foreach($data as $key => $value) {
        $attr = "";
	if(is_numeric($key)) {
	    $attr = " id='{$key}'";
	    $key = "item";
	}
	$xml .= "<{$key}{$attr}>";
	$xml .= is_array($value) ? self::xmlToEncode($value) : $value;
	$xml .= "</{$key}>\n";
    }
    return $xml;
}


最后谢谢您的问题,祝学习愉快!

2 回复 有任何疑惑可以回复我~
#1

到此为止 提问者

恩恩,感谢singwa老师,$attr放在循环里面每次循环就不会使用循环体外层的初始值就ok啦。
2014-09-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP开发APP接口
  • 参与学习       79185    人
  • 解答问题       599    个

APP通信接口技术,不得不掌握的法宝,学完之后你会受益良多

进入课程
意见反馈 帮助中心 APP下载
官方微信