在典型的 for 循环中生成逗号分隔列表时,消除最后逗号的最佳、最简洁的编码实践是什么?这种情况总是出现,我无法忍受为如此简单的事情编写这么多额外的代码......必须有更好的技术/模式。
foreach ($list as $item)
{
echo "'".$item . "',";
}
使上述代码除最后一次迭代之外的所有地方都产生逗号的最佳方法是什么(使用 PHP 和/或 JS)?
现在我正在做这样的事情:
$total = count($images);
$i=0;
foreach ($list as $item)
{
$i++;
echo "'".$item."'";
if ($i<$total) echo ',';
}
但是这为如此简单的事情添加了四行代码......
最佳答案
Standard PHP Library (SPL)提供了一个方便的类(class),CachingIterator
可用于查看是否还有更多项目需要迭代。以下内容可能不像您希望的那么简洁,但它很灵活(即可以用于不仅仅是数组)。
$array = range('a', 'g');
$cache = new CachingIterator(new ArrayIterator($array));
foreach ($cache as $item) {
echo "'$item'";
if ($cache->hasNext()) {
echo ',';
}
}
上面的示例输出
'a','b','c','d','e','f','g'
关于PHP/JS : Removing final comma in a delimited list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723333/