删除最后一个用于STRING的COMMA

时间:2016-07-13 08:43:07

标签: php comma

我有一个复选框,当选中字段时,字段将返回到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>

3 个答案:

答案 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);