我有以下代码:
while (list($key, $value) = each($arr)) {
$implode_keys_values = @"$key=$value,";
echo"$implode_keys_values";
}
最终回显{{1}} 取决于有多少键/值。
如何使用此动态更改字符串并删除最后一个逗号?
请记住:
xxxx=xxxx,xxxx=xxxx,xxxx=xxxx,xxxx=xxxx,
无效,会删除所有逗号。
答案 0 :(得分:3)
rtrim($implode_keys_values, ",")
会删除逗号。
您可以详细了解rtrim here at the PHP docs
$implode_keys_values = "";
while (list($key, $value) = each($arr)) {
$implode_keys_values .= @"$key=$value,";
}
echo rtrim($implode_keys_values, ",");
答案 1 :(得分:2)
PHP内置了一个函数,如果数组中的数据不是太复杂(适用于你拥有的xxxxxx值,可以与其他人分开):
echo http_build_query($arr, '', ',');
另一种方法是使用迭代器并检查当前迭代是否是最后一次迭代。 CachingIterator::hasNext()
方法对此有帮助:
$it = new CachingIterator(new ArrayIterator($arr));
foreach($it as $key => $value) {
echo $key, '=', $value, $it->hasNext() ? ',' : '';
}
此变体适用于任何数据。
答案 2 :(得分:0)
在您的情况下,这是实施implode()
的更好方式:
$data = array();
while (list($key, $value) = each($arr)) {
$data[] = "$key=$value";
}
echo implode(",",$data);