PHP 为除最后一项以外的每一项添加逗号

Posted

技术标签:

【中文标题】PHP 为除最后一项以外的每一项添加逗号【英文标题】:PHP Add comma to every item but last one 【发布时间】:2011-07-23 08:52:27 【问题描述】:

我有一个类似的循环

foreach ($_GET as $name => $value) 
    echo "$value\n";

我想在每个项目之间添加一个逗号,这样它就会像这样结束。

var1, var2, var3

由于我使用的是foreach,所以我无法确定我的迭代次数。

我该怎么做?

【问题讨论】:

不行吗?您可以手动将计数器添加到您的代码中。 那么他的结果不应该是name: var1, name: var2, name: var3吗? 抱歉我的疏忽,我没有仔细看我的 sn-p。 【参考方案1】:

只需使用您的 foreach 构建您的输出,然后将该数组内爆并输出结果:

$out = array();
foreach ($_GET as $name => $value) 
    array_push($out, "$name: $value");

echo implode(', ', $out);

【讨论】:

@Fr0zenFyr,您的阵列需要非常大才能对性能产生影响,真的。如果您有如此庞大的数组,为什么要使用逗号分隔的项目字符串?这一切都取决于上下文,这里。在美妙的编码世界中,没有万能的神奇解决方案。如果this对您来说不是一个可行的解决方案,我邀请您提出一个相关问题,描述您的确切问题。 我真的没有这个问题,如果有人想建立一个CSV,我只是在检查大型数组的可能性,比方说。 @Fr0zenFyr,对于 CSV,您可以使用 fputcsv,并结合使用 array_keysarray_values... 如果您担心大型数组,那么也许你的方法是错误的:) 最重要的是,当真正的问题出现时,我们不要进行猜测并提出问题。否则,我们将永远不会停止谈论用例异常。干杯!【参考方案2】:

像这样:

$total = count($_GET);
$i=0;
foreach ($_GET as $name => $value) 
    $i++;
    echo "$name: $value";
    if ($i != $total) echo', ';

解释:你可以通过 count() 找到所有值的总数。运行 foreach() 循环时,您计算迭代次数。在循环内部,当迭代不是最后一次(不等于所有值的总数)时,您告诉它回显“,”。

【讨论】:

【参考方案3】:
$comma_separated = implode(", ", $_GET);

echo $comma_separated;

你可以使用 implode 来实现它

【讨论】:

以为他只是想要价值观【参考方案4】:

你也可以这样做:

$output = '';
foreach ($_GET as $name => $value) 
    $output = $output."$name: $value, ";

$output = substr($output, 0, -2);

这只会产生一个可以输出的巨大字符串。不同的风格,不同的方法,真的。

【讨论】:

【参考方案5】:

对不起,我没有正确地陈述我的问题。 对我有用的遮阳篷是

implode(', ', $_GET);

谢谢,乔达梅里奥

【讨论】:

哇,你才 14 岁。兄弟,继续努力吧。 @kjy112 谢谢我一定会的。编程很棒:)【参考方案6】:

我通常会做这样的事情(伪代码):

myVar

for... 
    myVar = i + ","


myVar = trimOffLastCharacter(myVar)

echo myVar

【讨论】:

以上是关于PHP 为除最后一项以外的每一项添加逗号的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS中怎样获取Form表单中的每一项的值

jQuery .each() - 识别最后一项

jquery实现给循环的每一项加上不同的样式

?数组首尾操作的方法

如何给TreeView中的每一项加上可复选框的CheckBox?

php 将WooCommerce购物车图标/项添加到top_nav菜单区域作为最后一项。