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

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'));

或者,如果你really喜欢长篇大论:

$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);

关键是,这种切片、合并、过滤和连接可以正确处理all种情况,包括0、1和2项,而不需要额外的if..else条语句.它恰好可以折叠成一个内衬.

Php相关问答推荐

带有打印和回声的PHP意外命令

打印SQL表内容时在DIV内添加断点

获得客户S在WooCommerce为期1年的总支出

PHP FFI—将PHP数组转换为C指针数组

在Woocommerce变量产品中的标签附近显示所选属性选项名称

无法在WooCommerce中发送客户笔记邮箱通知

Symfony5:如何在不登录的情况下使API路由可访问?

Laravel区分大小写搜索

如何从WooCommerce checkout 帐单邮箱字段中删除星号?

限制联系人页面仅允许在WooCommerce中登录的用户

如何在codeigniter中将order_by RAND与下面的代码一起使用

调用模型[App\Models\Employee]上未定义的关系[title]

PHP API - 本地主机中的 SSL 证书问题

如何在 Laravel 迁移中使用日期时间和天数?

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

Google Sheets PHP API - 添加多个选项卡时出现问题

如何在供应商名称后将自定义徽章添加到商品详情

如何正确使用Flysystem和Local Adapter

Google Drive - 仅使用 FileID 获取文件的 FileSize