2016-07-13 5 views
-2

Ich habe ein Kontrollkästchen, wenn Felder angekreuzt sind, werden die Felder an HTML-Tabelle zurückgegeben. und ich kann nicht das letzte Komma entfernen.LETZTEN COMMA FÜR STRING ENTFERNEN

$faultTypesStr = ''; 
    if(!empty($faultTypeIds)){ 
    foreach($faultTypeIds as $faultTypeId){ 
     $faultTypeResult = FaultType::find()->where(['FaultTypeId' => $faultTypeId])->one(); 
     $faultTypesStr = $faultTypesStr.$faultTypeResult->FaultTypeName.', '; 
    }} 

hier ist, wie ich in HTML-Tabelle anzeigen. SMTP

Antwort

5

Diese Antwort konzentriert sich auf Ihre Frage Titel, gibt es zwei andere Antworten, die eine bessere Lösung für Ihr genaues Problem bieten. Sie sollten diese Ausgabe in erster Linie besser bauen, und Sie müssen nicht schneiden.

Einfach! Verwenden rtrim

$string=rtrim($string,','); 

können Sie auch mehr Zeichen geben, es zu entfernen, wenn nötig, zum Beispiel

$string=rtrim($string,',.AbCd123'); // Remove Those individual chars if found at the end 

Und wenn Sie es für den Anfang der Zeichenfolge tun möchten, können Sie verwenden ltrim

Und wenn Sie wollen, es zu tun für beide Seiten verwenden trim

1

können Sie Art und Weise ändern Ausgabe in der richtigen Yii2 Weise

statt Brennen mehrere Abfragen zu bekommen Ausgang Feuer einzelne Abfrage

PHP-Code

$faultTypesStr = ''; 
if(!empty($faultTypeIds)){ 
    $query = FaultType::find()->where(['FaultTypeId' =>$faultTypeIds])->all(); 
    $faultTypes = yii\helpers\ArrayHelper::map($query, 'FaultTypeId', 'FaultTypeName'); 
    $faultTypesStr = implode(',',$faultTypes); 
} 
zu erhalten

SMTP Mail

<tr> 
    <td class="fields"> <b>Type Of Fault</b></td> 
    <td>'.$faultTypesStr.'</td> 
</tr> 
1

Als Alternative können die Zeichenfolge selbst erstellen, können Sie den Fehlertyp Namen auf ein Array fügen Sie dann mit implode() die Zeichenfolge bauen.

$faultTypesNames = array(); 

if(!empty($faultTypeIds)) { 
    foreach($faultTypeIds as $faultTypeId) { 
     $faultTypeResult = FaultType::find()->where(['FaultTypeId' => $faultTypeId])->one(); 
     $faultTypesNames[] = $faultTypeResult->FaultTypeName; 
    } 
} 

$faultTypesStr = implode(',',$faultTypesNames); 
+1

Yep, das die richtige Sache zu tun –