如何循环使用addAttribute写入多个值。
到目前为止看起来像这样:
for($i = 0; $i < 10; $i++)
{
$this->title->addAttribute('names', "'".$this->Data[$i]->names.';');
}
我收到此错误:
SimpleXMLElement :: addAttribute():属性已存在
当前xml看起来像这样(没有循环,带有静态值名称):
<button names=Tim;"/>
但我想在循环之后看起来像这样:
<button names=Tim;Tom;Ted"/>
我该如何实现这个目标?
答案 0 :(得分:0)
在您的代码示例中,您尝试添加相同的属性。您可以使用名称创建一个数组,而不是它。然后,您可以使用implode的粘合字符串连接数组元素。
$names = [];
for($i = 0; $i < 10; $i++)
{
$names[] = $this->Data[$i]->names;
}
$this->title->addAttribute('names', implode(';',$names));
答案 1 :(得分:0)
您可以先创建一个包含所有名称的数组,然后在属性中implode数组来实现此目的 这应该工作
<强> PHP 强>
$names = [];
foreach($this->Data as $key => $value) {
$names[] = $value->names;
}
$this->title->addAttribute('names', implode(';', $names));
答案 2 :(得分:0)
您无需使用addAttribute()
为存在属性添加值。只为像底部代码
for($i = 0; $i < 10; $i++)
{
$this->title['names'] .= $this->Data[$i]->names.';'
}
检查demo
中的结果