2

これらを検索するための正しい用語を知っていれば、これをグーグルで簡単に検索できますが、用語についてはわかりません.

大きなオブジェクトを返す API があります。私がアクセスする特定のものがあります:

$bug->fields->customfield_10205[0]->name;
//result is johndoe@gmail.com

多数の値があり、0 から 1 などに変更することでそれらにアクセスできます。

しかし、私は配列をループして(おそらく正しい用語ではないかもしれません)、そこにあるすべての電子メールを取得して、次のような文字列に追加したいと思います:

implode(',', $array);
//This is private code so not worried too much about escaping

次のようなことをするだけだと思っていたでしょう: echo implode(',', $bug->fields->customfield_10205->name);

また、echo implode(',', $bug->fields->customfield_10205); を試しました。

そして echo implode(',', $bug->fields->customfield_10205[]->name);

探している出力は次のとおりです。「johndoe@gmail.com、marydoe@gmail.com、patdoe@gmail.com」

どこが間違っているのでしょうか、ばかげた質問を前もってお詫びします。これはおそらくとても初心者です

4

4 に答える 4

2

次のような反復が必要です

# an array to store all the name attribute
$names = array();

foreach ($bug->fields->customfield_10205 as $idx=>$obj)
{
  $names[] = $obj->name;
}

# then format it to whatever format your like
$str_names = implode(',', $names);

PS: 名前の代わりに属性 email を探す必要がありますが、私はあなたのコードに従うだけです

于 2013-01-23T12:42:42.817 に答える
0

array_mapこのような機能を使用できます

function map($item)
{
    return $item->fields->customfield_10205[0]->name;
}

implode(',', array_map("map", $bugs)); // the $bugs is the original array 
于 2013-01-23T12:48:13.547 に答える
0

このコードを使用して、配列をループします。

$arr = array();
for($i = 0; $i < count($bug->fields->customfield_10205); $i++)
{
    $arr[] = $bug->fields->customfield_10205[$i]->name;
}
$arr = implode(','$arr);
于 2013-01-23T12:42:04.067 に答える
0

これは、追加のループと一時リストを使用しないと、PHP では不可能です。

$names = array();
foreach($bug->fields->customfield_10205 as $v)
{
    $names[] = $v->name;
}
implode(',', $names);
于 2013-01-23T12:42:35.487 に答える