php - 使用 ", "插入一个数组,并在最后一项之前添加 "and "

标签 php arrays

这个数组包含一个项目列表,我想把它变成一个字符串,但我不知道如何让最后一个项目在它之前有一个 &/and 而不是逗号。

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

应该变成

coke, sprite and fanta

这是常规的内爆函数:

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

有什么简单的方法?

最佳答案

适用于任意数量元素的长线:

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

关于php - 使用 ", "插入一个数组,并在最后一项之前添加 "and ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586141/

相关文章:

php - 如何获取运行时确定的可调用参数的数量?

php - 如何作曲安装最新的 require-dev 和最低的 require-dev

当 cURL 数据 > 1024 时,PHP HTTP POST 失败

java - 循环遍历多个数组列表并获取元素

java - 我不断收到错误 : int cannot be dereferenced. 如何修复它?

javascript - 如何使用 JS 添加和删除 CSS 类

php - Laravel 搜索当前排名位置

返回两个数组的 PHP 函数

objective-c - 从 Objective-C 中的数组中消除连续重复项的最快方法

C++ BigInteger 到字节数组