需要在数组之间添加撇号

时间:2014-07-21 08:47:45

标签: php arrays

我有一个除了标题之外还有CD的音乐页面。我也有这个清单:

"artist, upcoming artist, producer, featured artist and featured beatmakers"

所以列出的每张音乐CD都说:

  

"艺术家的标题(如果有的话),即将上映的艺术家(如果有的话),   制片人(如果有的话),外部艺术家(如果有的话)和外部艺术家(如果有的话)   任何)"

这是问题..
如果有艺术家和即将到来的艺术家,或外部艺术家和制作人或任何阵列组合,那么我需要在两个不同的数组或上面列出的数组的任意组合之间放置一个空格和撇号.....

以下是我正在使用的代码:

<?php the_title(); ?> By <?php echo themex_artists(get_post_meta($post-ID,'freealbum_artists',true)); ?> 
<?php echo themex_artists(get_post_meta($post->ID,'freealbum_upcomingartists',true)); ?> 
<?php echo themex_artists(get_post_meta($post->ID,'freealbum_producers',true)); ?> 
<?php echo themex_artists(get_post_meta($post->ID,'freealbum_externalartists',true)); ?> 
<?php echo themex_artists(get_post_meta($post->ID,'freealbum_externalproducers',true)); ?> 

每张专辑都不同,因此名字不会一直显示在每张专辑的每个字段上.... 我需要一些方法来正确地分开这些。任何建议都会很棒!

2 个答案:

答案 0 :(得分:1)

您需要首先将此信息放在数组上,如您所说,过滤非空值,最后使用逗号内插数组:

$all_fields = [
    'freealbum_artists',
    'freealbum_upcomingartists',
    'freealbum_producers',
    'freealbum_externalartists',
    'freealbum_externalproducers'
];

$album_fields = [];
foreach ($all_fields as $field) {
    $album_fields[] = trim(themex_artists(get_post_meta($post->ID, $field, true)));
}

echo implode(', ', array_filter($album_fields, function ($val) {
    return $val ? true : false;
})), PHP_EOL;

答案 1 :(得分:0)

如果我找对你,试试这个(如果没有什么可显示,假设函数返回FALSE):

<?php the_title(); ?> By <?php echo themex_artists(get_post_meta($post-ID,'freealbum_artists',true)); 
echo themex_artists(get_post_meta($post->ID,'freealbum_upcomingartists',true));

if(themex_artists(get_post_meta($post->ID,'freealbum_upcomingartists',true)) && themex_artists(get_post_meta($post->ID,'freealbum_producers',true))) echo ", ";

echo themex_artists(get_post_meta($post->ID,'freealbum_producers',true));

if(themex_artists(get_post_meta($post->ID,'freealbum_producers',true)) && themex_artists(get_post_meta($post->ID,'freealbum_externalartists',true))) echo ", ";

echo themex_artists(get_post_meta($post->ID,'freealbum_externalartists',true));

if(themex_artists(get_post_meta($post->ID,'freealbum_externalartists',true)) && themex_artists(get_post_meta($post->ID,'freealbum_externalproducers',true))) echo ", ";

echo themex_artists(get_post_meta($post->ID,'freealbum_externalproducers',true)); ?>

这就是你的意思:)?