2016-11-04 17 views
1

addAttributeをループして複数の値を書き込むにはどうすればよいですか?php Xml loop through addAttribute

これまでのところ、それは次のようになります。XMLは(静的な値の名前で、ループなし)このようになります

SimpleXMLElement::addAttribute(): Attribute already exists

は現在::

 for($i = 0; $i < 10; $i++) 
     { 
      $this->title->addAttribute('names', "'".$this->Data[$i]->names.';'); 
     } 

私はこのエラーを取得します ​​

ループの後にこのように表示します。

<button names=Tim;Tom;Ted"/> 

どうすればよいですか?

答えて

0

すべてのあなたの名前の配列を作成する最初のことでこれを達成することができ、その後、あなたの属性 でimplodeあなたの配列は、これは

PHP

$names = []; 
foreach($this->Data as $key => $value) { 
    $names[] = $value->names; 
} 
$this->title->addAttribute('names', implode(';', $names)); 
0

コードサンプルで、同じ属性を追加しようとしています。代わりに、名前を持つ配列を作成することができます。次に、implodeのグルーストリングで配列要素を結合することができます。

$names = []; 

for($i = 0; $i < 10; $i++) 
{ 
    $names[] = $this->Data[$i]->names; 
} 

$this->title->addAttribute('names', implode(';',$names)); 
+1

for($i = 0; $i < 10; $i++) { $this->title['names'] .= $this->Data[$i]->names.';' } 

チェック結果を属性に新しい値を追加します。 – Blackbam

+0

このコードスニペットは問題を解決するかもしれませんが、それがなぜ、どのように問題に答えるかは説明しません。 [あなたのコードの説明を含めてください](// meta.stackexchange.com/q/114762/269535)、本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 **フラッグスタッフ/批評家:** [この1つのようなコードのみの回答については、downvote、削除しないでください!](// meta.stackoverflow.com/a/260413/2747593) –

+0

私はその点を逃しました、ありがとう警告のためのすべて。 – nejat

0

あなたがいない動作するはずです存在属性に値を追加するにはaddAttribute()を使用する必要があります。底面のみコードのようないくつかの説明がいいだろうdemo