2

オブジェクトのサブオブジェクトのプロパティのリストを作成するためのより最適な方法があるかどうかを調べようとしています。(大雑把な言い回しをお詫びします。私はOOの専門家ではありません)

「artists」のコレクションを持つオブジェクト「event」があり、各アーティストには「artist_name」があります。HTML出力で、コンマで区切られたアーティスト名のプレーンリストが必要です。

PHPのimplode()は、コンマで区切られた値のリストを作成するための最良の方法のようです。現在、オブジェクトを反復処理し、一時配列「artistlist」に値をプッシュして、implode()を使用できるようにしています。

それは私が思いつくことができる最短です。これをよりエレガントにする方法はありますか?

$artistlist = array();
foreach ($event->artists as $artist)
{
    $artistlist[] = $artist->artist_name;
}
echo implode(', ', $artistlist);
4

2 に答える 2

9

本当に速い方法はありません。array_mapPHP 5.3では、無名関数を使用できます。

implode(', ', array_map(function ($artist) { 
        return $artist->artist_name;
    } , $event->artists));

どちらがよりエレガントか、私はあなたに任せます。

于 2010-03-28T02:13:20.140 に答える
0

自分で文字列を作成し、各アーティストの後にコンマを追加するだけでなく(つまり、最後のコンマも適切に処理する必要があります)、これを行う最も簡潔な方法がすでにあります。

于 2010-03-28T02:12:46.397 に答える