【发布时间】:2014-11-18 00:38:27
【问题描述】:
我将一些数据存储在 MySQL 数据库的“专业”列中,如下所示:
,,specialty1,,,,specialty2,,,,specialty3,
首先,我把这些数据变成一个数组:
$specialties = $location['specialties'];
$specialties_array = sw::shared()->users->unserializeArray($specialties);
foreach ($specialties_array as $specialty) {
$specialty = str_replace(',', '', $specialty);
echo $specialty . ", ";
}
unSerializeArray 函数:
public function unserializeArray($string) {
$array = explode(",,",$string);
unset($array[0]);
$array = array_values($array);
return $array;
}
我对上述函数的问题是,在该函数运行后,一些数组值仍然带有一个逗号。
所以接下来我使用 str_replace 删除逗号以确保分隔特殊值。分离专业值后,我为每个专业重新添加一个逗号以进行输出。
理想情况下,我想在最后一个专业之后显示不带逗号的专业:
specialty1, specialty2, specialty3
但是,它当然是这样输出的:
specialty1, specialty2, specialty3,
当我分别回显每个专业而不是整个数组时,如何删除最后一个逗号?有没有更好的方法来做到这一点?
我尝试了该线程的解决方案:Removing last comma from a foreach loop,但我认为我存储数据的方式 (,,specialty1,,,,specialty2,,,,specialty3,) 导致此解决方案出现问题。
【问题讨论】:
-
$string = rtrim($string, ',');