为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
哈士奇WWW 2019-10-10 14:13:16
该数组包含一个项目列表,我想将其转换为字符串,但是我不知道如何使最后一个项目前带有&/和而不是逗号。1 => coke 2=> sprite 3=> fanta应该成为coke, sprite and fanta这是常规的爆破功能:$listString = implode(', ', $listArrau);有什么简单的方法吗?
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

可处理任何数量项目的长衬板:


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语句。而且它恰好可以折叠成单线。


查看完整回答
反对 回复 2019-10-10
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

您可以弹出最后一个项目,然后将其与文本合并:


$yourArray = ('a', 'b', 'c');

$lastItem = array_pop($yourArray); // c

$text = implode(', ', $yourArray); // a, b

$text .= ' and '.$lastItem; // a, b and c


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 289 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信