Używam pętli do pobierania wartości z mojej bazy danych, a mój wynik jest taki:
'name', 'name2', 'name3',
I chcę tego tak:
'name', 'name2', 'name3'
Chcę usunąć przecinek po ostatniej wartości pętli.
Odpowiedzi:
Próbować:
$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');
rtrim
wywołanie do tej zmiennej. Jeśli nadal masz problemy, zaktualizuj swoje pytanie kodem, który tworzy pętlę.
rtrim($string, ',')
, kiedy powinienem pisać$string = rtrim($string, ',');
Możesz użyć substr
funkcji, aby to usunąć.
$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);
rtrim
funkcjonować
rtrim($my_string,',');
Drugi parametr wskazuje, że przecinek ma zostać usunięty z prawej strony.
posługiwać się rtrim()
rtrim($string,',');
Będzie to miało wpływ na twój skrypt, jeśli pracujesz z tekstem wielobajtowym, z którego wykonujesz podciąg. W takim przypadku gorąco polecam włączenie funkcji mb_ * w Twoim php.ini lub zrób toini_set("mbstring.func_overload", 2);
$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);
jest tak proste, jak:
$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
W tym celu lepiej jest użyć implodu. Implode jest łatwy i niesamowity:
$array = ['name1', 'name2', 'name3'];
$str = implode(', ', $array);
Wynik:
name1, name2, name3
Możesz użyć jednej z poniższych technik, aby usunąć ostatni przecinek (,)
Rozwiązanie 1:
$string = "'name', 'name2', 'name3',"; // this is the full string or text.
$string = chop($string,","); // remove the last character (,) and store the updated value in $string variable.
echo $string; // to print update string.
Rozwiązanie 2:
$string = '10,20,30,'; // this is the full string or text.
$string = rtrim($string,',');
echo $string; // to print update string.
Rozwiązanie 3:
$string = "'name', 'name2', 'name3',"; // this is the full string or text.
$string = substr($string , 0, -1);
echo $string;
Rozwiązania do zastosowania podczas pętli:
//1 - Using conditional:
$source = array (1,2,3);
$total = count($source);
$str = null;
for($i=0; $i <= $total; $i++){
if($i < $total) {
$str .= $i.',';
}
else {
$str .= $i;
}
}
echo $str; //0,1,2,3
//2 - Using rtrim:
$source = array (1,2,3);
$total = count($source);
$str = null;
for($i=0; $i <= $total; $i++){
$str .= $i.',';
}
$str = substr($str,0,strlen($str)-1);
echo $str; //0,1,2,3
implode
swoje oryginalne wartości przecinkami, nie zapętlać ich i usuwać na końcu.