用“,”放大数组,并在最后一项之前添加“ and”

该数组包含一个项目列表,我想将其转换为字符串,但是我不知道如何使最后一个项目前带有&/和而不是逗号。


1 => coke 2=> sprite 3=> fanta

应该成为


coke, sprite and fanta

这是常规的爆破功能:


$listString = implode(', ', $listArrau);

有什么简单的方法吗?


哈士奇WWW
浏览 291回答 3
3回答

千万里不及你

可处理任何数量项目的长衬板:echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($array, 0, -1))), array_slice($array, -1)), 'strlen'));或者,如果您真的更喜欢冗长:$last  = array_slice($array, -1);$first = join(', ', array_slice($array, 0, -1));$both  = array_filter(array_merge(array($first), $last), 'strlen');echo join(' and ', $both);关键是,这种切片,合并,过滤和联接可以正确处理所有情况,包括0、1和2项目,而无需额外的if..else语句。而且它恰好可以折叠成单线。

收到一只叮咚

您可以弹出最后一个项目,然后将其与文本合并:$yourArray = ('a', 'b', 'c');$lastItem = array_pop($yourArray); // c$text = implode(', ', $yourArray); // a, b$text .= ' and '.$lastItem; // a, b and c
打开App,查看更多内容
随时随地看视频慕课网APP