2012-09-21 96 views
-1

可能重複:
Implode array with 「, 」 and add 「and 」 before last item在PHP數組最後一個字前加一個字符

在WordPress,我使用PHP破滅分離了一系列用逗號的字符串,存儲在該像這樣的陣列:

Wordpress循環迭代通過此:

<?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以逗號分隔每個字符串。

我需要在最後一個單詞而不是逗號前添加一個&符號。這可能嗎?

回答

0

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; 
} 
+0

不爲我工作,但以下內容:

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

JCHASE11

+0

上面是取自:http://stackoverflow.com/questions/8586141/implode-array-with-and-add-and-before-last-item – JCHASE11

+0

@ JCHASE11:它會[爲你工作](http://ideone.com/tlfBu),如果你打算測試它。 – Jon

相關問題