У меня есть PHP в то время как LOOP, и я хочу удалить последнюю запятую ,
от echo '],';
если это последний цикл
while($ltr = mysql_fetch_array($lt)){ echo '['; echo $ltr['days']. ' ,'. $ltr['name']; echo '],'; }
$str = ''; while($ltr = mysql_fetch_array($lt)){ $str .= '['; $str .= $ltr['days']. ' ,'. $ltr['name']; $str .= '],'; } echo rtrim($str, ",");
это приведет к удалению последнего из строки
Создайте массив с элементами, когда вы идете так, чтобы они выглядели как array = ([ELEMENT INFO], [ELEMENT INFO], [ELEMENT INFO])
а затем implode
массив запятой.
Я думаю, что системное решение следующее:
$separator = ''; while($ltr = mysql_fetch_array($lt)){ echo $separator; echo '['; echo $ltr['days']. ' ,'. $ltr['name']; echo ']'; if (!$separator) $separator = ', '; }
Нет вызова для count()
, без дополнительной итерации implode()
, никаких дополнительных операций с строками, готовых для любого (непредсказуемого) количества результатов.
$result = mysql_fetch_array($lt); for ($i=0;$i<=(count($result)-1);$i++) { $ltr = $result[$i]; echo '['; echo $ltr['days']. ' ,'. $ltr['name']; echo ']'; if(!count($result)-1 == $i){ echo ','; } }
Проверьте, сколько записей у вас есть, сделайте «Счетчик» и условие только для того, чтобы поместить запятую, когда это не последний цикл.
$arr = array(); while($ltr = mysql_fetch_array($lt)){ $arr[] = '[' . $ltr['days'] . ' ,' . $ltr['name'] . ']'; } echo implode(',', $arr);
$res_array = array(); while($ltr = mysql_fetch_array($lt)){ $res_array[] = '['.$ltr['days']. ' ,'. $ltr['name'].']'; } $str = implode(",",$res_array); echo $str;
.$res_array = array(); while($ltr = mysql_fetch_array($lt)){ $res_array[] = '['.$ltr['days']. ' ,'. $ltr['name'].']'; } $str = implode(",",$res_array); echo $str;
Сохраните ответ как var вместо того, чтобы его эхом, а затем удалите конечный символ в конце с помощью substr.
$response = ""; while($ltr = mysql_fetch_array($lt)){ $response .= '['; $response .= $ltr['days']. ' ,'. $ltr['name']; $response .= '],'; } echo substr($response, 0, -1);
//this one works $result = mysql_fetch_array($lt); for ($i=0;$i<=(count($result)-1);$i++) { $ltr = $result[$i]; echo '['; echo $ltr['days']. ' ,'. $ltr['name']; echo ']'; if(count($result)-1 != $i){ echo ','; } }