эй, у меня это есть,
$following_user_id .= $row['following_user_id'];
и я получаю
44443344330
то я использую функцию implode () и разделяю с помощью commans
44,44,33,44,33,0,
но мне не нужна последняя запятая на последнем номере?
Это возможно?
$following_user_ids = array(); //loop this: $following_user_ids[] = $row['following_user_id']; $user_ids_string = implode(',',$following_user_ids);
Собирайте данные в массив строк и используйте функцию implode:
$uids = array(); while($row = mysql_fetch_assoc($result)){ array_push($uids, $row['following_user_id']); } $following_user_id = implode(',', $uids);
Проверить implode: http://php.net/manual/en/function.implode.php
Пример кода: я предполагаю, что вы используете какой-то цикл?
$arrUsers = new array(); ... your loop code here ... array_push($arrUsers, $row['following_user_id']); ... end loop code .. $following_user_id = impload(",", $arrUsers);
Implode не должен вставлять запятую в конце этой строки. Вы уверены, что в конце последовательности вашего массива нет пустой строки?
В любом случае, чтобы исправить строку, которую вы имеете, просто избавиться от последнего символа строки:
$concatUserIds = "44,44,33,44,33,0,"; $concatUserIds = substr($concatUserIds, 0, strlen($concatUserIds) - 1);
Кроме того, если вы не собираетесь использовать набор номеров без запятой, почему бы вам не добавить запятую каждый раз, когда вы добавляете идентификатор пользователя. Таким образом, вам даже не нужно использовать функцию implode.
Вы можете разбить строку на массив символов, а затем разбить массив.
$array = preg_split('//', $following_user_id, -1, PREG_SPLIT_NO_EMPTY); echo implode( ',', $array );
Это работает для меня:
<?php $following_user_id.= $row['following_user_id']; $following_user_id=preg_replace('/(?<=\d)(?=(\d)+(?!\d))/',',',$following_user_id); echo $following_user_id."<br>"; ?>
Попробуйте использовать массивы, например
<?php $arr = array(); $arr[] = 'foo'; $arr[] = 'bar'; echo implode(',', $arr);