Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成带有分隔符的PHP对象属性列表的最佳方法是内爆()?_Php_List_Object_Iteration_Implode - Fatal编程技术网

生成带有分隔符的PHP对象属性列表的最佳方法是内爆()?

生成带有分隔符的PHP对象属性列表的最佳方法是内爆()?,php,list,object,iteration,implode,Php,List,Object,Iteration,Implode,我试图找出是否有一种更理想的方法来创建对象的子对象属性列表。(为粗俗的措辞道歉,我不是一个真正的OO专家) 我有一个对象“事件”,它有一个“艺术家”集合,每个艺术家都有一个“艺术家名称”。在我的HTML输出中,我想要一个由逗号分隔的艺术家姓名的简单列表 PHP的内爆()似乎是创建逗号分隔的值列表的最佳方法。我目前正在迭代对象,并在临时数组“artistlist”中推送值,以便可以使用implode() 这是我能想出的最短的。有没有更优雅的方法 $artistlist = array(); for

我试图找出是否有一种更理想的方法来创建对象的子对象属性列表。(为粗俗的措辞道歉,我不是一个真正的OO专家)

我有一个对象“事件”,它有一个“艺术家”集合,每个艺术家都有一个“艺术家名称”。在我的HTML输出中,我想要一个由逗号分隔的艺术家姓名的简单列表

PHP的内爆()似乎是创建逗号分隔的值列表的最佳方法。我目前正在迭代对象,并在临时数组“artistlist”中推送值,以便可以使用implode()

这是我能想出的最短的。有没有更优雅的方法

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

除了自己创建字符串并在每个艺术家后面添加逗号(这意味着您还需要适当地处理最后的逗号),您已经有了最简洁的方法来完成这项工作。

没有更快的方法。使用PHP 5.3,您可以使用和:


哪个更优雅,我留给你。

有趣的是,我没想到。我喜欢。:)@直觉:
create\u函数
太不雅观了。我通常从不为它烦恼。确切地说,最后一个逗号是我试图避免的
implode(', ', array_map(function ($artist) { 
        return $artist->artist_name;
    } , $event->artists));