Ayraç karakteri, implode () PHP ile nesne özelliklerini listesini oluşturmak için en uygun yoldur?

2 Cevap php

Ben bir nesnenin alt nesne özelliklerinin bir listesini oluşturmak için daha optimal bir yol olup olmadığını bulmaya çalışıyorum. (Ham ifadeler için özür dilemek istiyorum, bir OO uzman gerçekten çok değilim)

Ben "sanatçılar", bir "ARTIST_NAME" olan her sanatçının bir koleksiyona sahip bir nesne "olay" var. Benim HTML çıktı, ben bir virgülle ayrılmış sanatçı adları düz bir listesini istiyorum.

PHP'nin implode () değerleri virgülle ayrılmış bir listesini oluşturmak için en iyi yol gibi görünüyor. Şu anda nesne yineleme ve bu yüzden çöktüğünü kullanabilirsiniz () bir geçici dizi "artistlist" değerleri itin duyuyorum.

Ben ile gelebilir kısa olduğunu. Bu daha şık yapmak için bir yolu var mı?

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

2 Cevap

Sadece (Ayrıca uygun nihai virgül ile uğraşmak gerekiyor demektir) dize kendiniz yaratmak ve her sanatçıdan sonra virgül ekleyerek yanı sıra, zaten bunu yapmak için en kısa yol var.

Daha hızlı bir yol gerçekten yoktur. PHP 5.3 ile kullanmak array_map and an anonymous function yapabilirsiniz:

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

Daha zarif olan, ben size bırakıyorum.