在将变量连接到逗号分隔的列表中时删除不必要的逗号


Removing unnecessary commas when concatenating variables into a comma separated list?

当我连接PHP变量以形成逗号分隔的列表时,无论该变量是否有值,它都会添加一个逗号。

将变量连接到逗号分隔的列表中时,如何删除不必要的逗号?

try {
    $stmt = $conn->prepare("SELECT * FROM customer_info WHERE user_id = :user_id");
    $stmt->bindValue(':user_id', $user_id);
    $stmt->execute();
}
catch (PDOException $e) {
    echo $e->getMessage();
}
$search = array('_', ',', 'Null');
$replace = array(' ', ', ', '');
$rows = str_replace($search, $replace, $row);
$merged_likes = $rows['items_like'] . ",  " . $rows['first_like'] . ",  " . $rows['second_like'] . ",  " . $rows['third_like'];
echo $merged_likes;

请参阅我对您另一个问题的回答。一旦您在一个数组中有了这些项,只需使用array_filter()过滤掉任何空白项即可。示例:

$likes = array_filter($likes, function($item)
{
    return !empty($item);
});
echo implode(', ', $likes);

此语法仅适用于PHP>=5.3.0。有关详细信息,请参阅匿名函数。

编辑

正如KingCrunch在下面提到的,如果你所有的空白项都是false(例如,一个空字符串),你可以简单地省略回调函数:

$likes = array_filter($likes);
echo implode(', ', $likes);
// or more succinctly
echo implode(', ', array_filter($likes));