在PHP数组中的最后一个单词前添加一个字符

时间:2012-09-21 13:14:26

标签: php arrays implode

  

可能重复:
  Implode array with “, ” and add “and ” before last item

在Wordpress中,我使用PHP implode用逗号分隔一系列字符串,这些字符串存储在数组中,如下所示:

Wordpress Loop通过这个迭代:

<?php unset($credits); ?>
<?php if(get_field('song_credits')):
    while(has_sub_field('song_credits')): 
       $credits[] = get_sub_field('artist_name');
    endwhile; ?>
    <p><?php echo implode(', ', $credits); ?>.</p>
<?php endif; ?>

基本上,一系列字符串存储在$ credits数组中,然后我使用implode用逗号分隔每个字符串。

我需要在最后一个单词之前添加一个&符号而不是逗号。这可能吗?

2 个答案:

答案 0 :(得分:1)

implode无法直接执行此操作,但并不难:

switch (count($credits)) {
    case 0:
        $result = '';
        break;
    case 1:
        $result = reset($credits);
        break;
    default:
        $last = array_pop($credits); // warning: this modifies the array!
        $result = implode(', ', $credits).' & '.$last;
        break;
}

答案 1 :(得分:0)

取自:Implode array with ", " and add "and " before last item

<p><?php echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($credits, 0, -1))), array_slice($credits, -1)))); ?></p>

这很有用