2016-03-30 5 views
1

Das ist mein Teil des Codes ist:for-Schleife mit if-Anweisung - Array ohne Komma

for($i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++) 
{ 
     $aData = $this->aProducts[$aProducts[$i]]; 

     $content .= '"'.$aData['sName'].'"'; 

     if ($i < $aKeys['iEnd']) 
     { 
      $content .= ', '; 
     } 
     $i2++; 
} 

Voll Code gibt das ich als Ergebnis:

["word1", "word2", "word3", ] 

Dies ist ein einfaches Array, das werde ich Verwenden Sie, aber das wird nicht funktionieren, da nach Word3 ein Komma-Zeichen ist. Wie schreibe ich diese if-Anweisung, um ein Ergebnis zu erhalten wie: ["word1", "word2", "word3"]?

+1

können Sie 'array_push verwenden();' das Komma Dingen zu beseitigen :) –

+1

stattdessen $ von Anhängen Inhalt Sie Array wie $ content erstellen = [] und array_push ($ aData ['sName'] verwenden und ein Ergebnis wie ["word1", "word2", "word3"] einfach json_encode ($ content) erhalten; –

Antwort

5

Setzen Sie eine Bedingung auf die Länge-1, um Ihren Fehler zu beheben.

for($i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++){ 
     $aData = $this->aProducts[$aProducts[$i]]; 

     $content .= '"'.$aData['sName'].'"'; 

     if ($i < $aKeys['iEnd']-1) { 
     $content .= ', '; 
     } 
     $i2++; 
     } 
+0

Das ist es! Vielen Dank! – user3180931

+0

Gern geschehen! –

1

Sie können rtrim() verwenden, um Komma zu entfernen.

Wie ich sehen kann, wollen Sie alle Namen als Komma getrennt. Dann kannst du das auch tun:

$content = array(); 
for($i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++){ 
    $aData = $this->aProducts[$aProducts[$i]]; 
    $content[] = $aData['sName']; 
} 

echo implode(',',$content); 
+0

bitte füge weitere Details hinzu und vielleicht einen Link zum Aktuelle Funktionsseite: http://php.net/manual/en/function.ltrim.php –

+0

Oops sorry wir ne ed, um rtrim zu benutzen. Danke @Sougata –

1

Alternativ können Sie hierfür eine array verwenden. Und am Ende einfach implode sie.

for($i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++){ 
    $aData = $this->aProducts[$aProducts[$i]]; 
    $content[] = '"'.$aData['sName'].'"'; 
} 

$content = '"' . implode('","', $content) . '"'; 
0

Verwenden array_push(); Funktion

$var = array(); 

loop(condition){ 
    array_push($var, $value); 
} 
+1

OP möchte eine Zeichenfolge mit ',' getrennten Werten nicht ein Array. –

+0

@Sougata, Mein Schlechter XD –

+1

@Sougata Sie sollten Matts Lösung verwenden und Komma getrennt erhalten Ergebnis können Sie Json_encode ($ Array) –

1
for($i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++){ 
     $aData = $this->aProducts[$aProducts[$i]]; 

     $content .= '"'.$aData['sName'].'"'; 

     if ($i < $aKeys['iEnd'] && $i!=($aKeys['iEnd']-1)) { //this condition also considers $i not to be the last element of the array before appending the comma to it. 
     $content .= ', '; 
     } 
     $i2++; 
     } 
Verwandte Themen