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_keys
和 array_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 为除最后一项以外的每一项添加逗号的主要内容,如果未能解决你的问题,请参考以下文章