0

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;
4

1 に答える 1

2

あなたの他の質問に対する私の答えを見てください。配列にアイテムを入れたら、空白のものを で除外し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));
于 2013-02-23T21:29:18.660 に答える