【发布时间】:2016-03-26 13:33:08
【问题描述】:
我正在尝试从数组的元素创建一个字符串。这是我的数组:
$arr = array ( 1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four' );
现在我想要这个输出:
one, two, three and four
正如您在上面的输出中看到的,默认分隔符是,,最后一个分隔符是and。
嗯,有两个 PHP 函数可以做到这一点,join() 和 implode()。但是他们都不能接受最后一个不同的分隔符。我该怎么做?
注意:我可以这样做:
$comma_separated = implode(", ", $arr);
preg_replace('/\,([^,]+)$/', ' and $1', $comma_separated);
Online Demo
现在我想知道没有正则表达式有什么解决方案吗?
【问题讨论】:
-
我的解决方案 (使用正则表达式) 有什么问题? ...实际上这是一个很好的问题,但我的解决方案有时会失败。当数组的最后一个值包含逗号时。