假设我有这个:
$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");
foreach($array as $i=>$k)
{
echo $i.'-'.$k.',';
}
回应"john-doe,foe-bar,oh-yeah,"
如何删除最后一个逗号?
答案 0 :(得分:19)
或者,您可以将rtrim
功能用作:
$result = '';
foreach($array as $i=>$k) {
$result .= $i.'-'.$k.',';
}
$result = rtrim($result,',');
echo $result;
答案 1 :(得分:10)
我不喜欢以前的所有食谱。
Php不是C,并且有更高级别的方法来处理这个特定的问题。
我将从你有这样一个数组的那一点开始:
$array = array('john-doe', 'foe-bar', 'oh-yeah');
您可以使用循环或 array_map()函数从初始数组构建此类数组。请注意,我使用的是单引号字符串。如果您没有需要替换的变量名,那么这是一个微优化。
现在你需要从这个数组生成一个CSV字符串,它可以这样做:
echo implode(',', $array);
答案 2 :(得分:7)
一种方法是使用substr
$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");
$output = "";
foreach($array as $i=>$k)
{
$output .= $i.'-'.$k.',';
}
$output = substr($output, 0, -1);
echo $output;
另一种方法是使用implode
$array = array("john" => "doe", "foe" => "bar", "oh" => "yeah");
$output = array();
foreach($array as $i=>$k)
{
$output[] = $i.'-'.$k;
}
echo implode(',', $output);
答案 3 :(得分:3)
我不喜欢这种使用substr的想法,因为它是糟糕编程的风格。这个想法是连接所有元素,并通过特殊的“分离”短语将它们分开。为此调用子串的想法就像使用激光射击鸟类。
在我正在处理的项目中,我们试图摆脱编码中的坏习惯。这个样本被认为是其中之一。我们强迫程序员编写这样的代码:
$first = true;
$result = "";
foreach ($array as $i => $k) {
if (!$first) $result .= ",";
$first = false;
$result .= $i.'-'.$k;
}
echo $result;
此代码的目的比使用substr的代码更清晰。或者你可以简单地使用 implode 函数(我们的项目是用Java编写的,所以我们必须设计自己的函数来连接字符串)。只有在真正需要时才应使用substr函数。这应该避免,因为这是编程风格不好的标志。
答案 4 :(得分:1)
我总是使用这种方法:
$result = '';
foreach($array as $i=>$k) {
if(strlen($result) > 0) {
$result .= ","
}
$result .= $i.'-'.$k;
}
echo $result;
答案 5 :(得分:1)
假设数组是索引,这对我有用。我循环$ i并测试$ i对$ key。当键结束时,逗号不会打印。请注意,IF有两个值,以确保第一个值在开头没有逗号。
foreach($array as $key => $value)
{
$w = $key;
//echo "<br>w: ".$w."<br>";// test text
//echo "x: ".$x."<br>";// test text
if($w == $x && $w != 0 )
{
echo ", ";
}
echo $value;
$x++;
}
答案 6 :(得分:0)
在foreach条件之后尝试此代码,然后回显$ result1
$result1=substr($i, 0, -1);
答案 7 :(得分:0)
这样做:
rtrim ($string, ',')
答案 8 :(得分:0)
请参阅此示例,您可以轻松了解
$name = ["sumon","karim","akash"];
foreach($name as $key =>$value){
echo $value;
if($key<count($name){
echo ",";
}
}
答案 9 :(得分:0)
我已使用数组的最后一个键从aray的最后一个值中删除了逗号。希望这会给你想法。
$last_key = end(array_keys($myArray));
foreach ($myArray as $key => $value ) {
$product_cateogry_details="SELECT * FROM `product_cateogry` WHERE `admin_id`='$admin_id' AND `id` = '$value'";
$product_cateogry_details_query=mysqli_query($con,$product_cateogry_details);
$detail=mysqli_fetch_array($product_cateogry_details_query);
if ($last_key == $key) {
echo $detail['product_cateogry'];
}else{
echo $detail['product_cateogry']." , ";
}
}