Список с запятыми в PHP и MySql


на странице PHP у меня есть простой запрос MySQL. Конечным результатом является список.

часть, которая генерирует результат

while($row = mysqli_fetch_array($result)) {
echo "<a href='".$row['url']."'>".$row['Name']."</a>, ";
}

это генерирует что-то вроде этого:

Abc123, Def456, Ghi789,

но я не хочу, чтобы эта последняя запятая:

Abc123, Def456, Ghi789

Как я могу изменить PHP для достижения этой цели?

 3
Author: CalvT, 2016-04-26

2 answers

Одним из возможных решений было бы сохранить результаты в строке и перед записью ее на экране с помощью echo удалить последнюю запятую, используя rtrim или trim (потому что вы можете передать им маску, указав строку ", "):

$resultado = "";
while($row = mysqli_fetch_array($result)) {
    $resultado .= "<a href='".$row['url']."'>".$row['Name']."</a>, ";
}
echo rtrim($resultado, ", ");

Другим возможным решением было бы сохранить текст (без запятой) в массиве, а затем сделатьimplode соединение с запятой:

$cadenas = array();
while($row = mysqli_fetch_array($result)) {
    array_push($cadenas, "<a href='".$row['url']."'>".$row['Name']."</a>");
}
echo implode(", ", $cadenas);
 2
Author: Alvaro Montoro, 2016-04-26 13:57:43

Вы можете использовать функцию substr() PHP:

$myString = substr($myString, 0, -1);

Удалит последний символ из строки.

 0
Author: Fen Dev, 2016-04-26 15:42:17