我有一个复选框,当选中字段时,字段将返回到html表。 我似乎无法删除最后一个逗号。
$faultTypesStr = '';
if(!empty($faultTypeIds)){
foreach($faultTypeIds as $faultTypeId){
$faultTypeResult = FaultType::find()->where(['FaultTypeId' => $faultTypeId])->one();
$faultTypesStr = $faultTypesStr.$faultTypeResult->FaultTypeName.', ';
}}
这里是我在html表格中的显示方式。 SMTP
<tr>
<td class="fields"> <b>Type Of Fault</b></td>
<td>'.$faultTypesStr.'</td>
</tr>
答案 0 :(得分:5)
此答案主要针对您的问题标题,还有其他两个答案可为您的确切问题提供更好的解决方案。你应该首先建立更好的输出,你不需要修剪。
简单!使用 rtrim
$string=rtrim($string,',');
如果需要,您还可以为其添加更多字符,例如
$string=rtrim($string,',.AbCd123'); // Remove Those individual chars if found at the end
如果您想在字符串开头处这样做,可以使用 ltrim
如果您想为双方都这样做,请使用 trim
答案 1 :(得分:1)
您可以改变以正确的 Yii2方式
获取输出的方式而是触发多个查询以获取输出单个查询
PHP代码
$faultTypesStr = '';
if(!empty($faultTypeIds)){
$query = FaultType::find()->where(['FaultTypeId' =>$faultTypeIds])->all();
$faultTypes = yii\helpers\ArrayHelper::map($query, 'FaultTypeId', 'FaultTypeName');
$faultTypesStr = implode(',',$faultTypes );
}
SMTP邮件
<tr>
<td class="fields"> <b>Type Of Fault</b></td>
<td>'.$faultTypesStr.'</td>
</tr>
答案 2 :(得分:1)
作为自己构建字符串的替代方法,您可以将故障类型名称添加到数组中,然后使用implode()
构建字符串。
$faultTypesNames = array();
if(!empty($faultTypeIds)) {
foreach($faultTypeIds as $faultTypeId) {
$faultTypeResult = FaultType::find()->where(['FaultTypeId' => $faultTypeId])->one();
$faultTypesNames[] = $faultTypeResult->FaultTypeName;
}
}
$faultTypesStr = implode(',',$faultTypesNames);