该数组包含一个项目列表,我想将其转换为字符串,但是我不知道如何使最后一个项目前带有&/和而不是逗号。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语句。而且它恰好可以折叠成单线。
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您可以弹出最后一个项目,然后将其与文本合并:
$yourArray = ('a', 'b', 'c');
$lastItem = array_pop($yourArray); // c
$text = implode(', ', $yourArray); // a, b
$text .= ' and '.$lastItem; // a, b and c
- 3 回答
- 0 关注
- 289 浏览
添加回答
举报
0/150
提交
取消