2016-11-20 5 views
2

whileの中の1文字だけをトリミングするにはどうすればよいですか?この例を参照してください:中にただ1つの文字を取り除く

私が取得したいもの:

[{"lat":"mylat","lng":"mylong","dragable":"false"}, 
{"lat":"mylat","lng":"mylong","dragable":"false"}]` 

私は取得しています何:

[{"lat":"mylat","lng":"mylong","dragable":"false"}, 
{"lat":"mylat","lng":"","dragable":"false"},] 

を、私はそれだけでコンマを削除したいです}]の間にありますが、わかりません。


コード:

print "["; 
if ($result=mysqli_query($conn,$sql)) { 
    while ($row=mysqli_fetch_row($result)) { 
    $locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]); 
    $locs = $locs_json.","; 
    print $locs; 
    } 
    mysqli_free_result($result); 
} 
print "]"; 

私は、印刷後にrtrim($locs, ",");を追加しようとしましたが、それはすべてのカンマを削除し、私は最後のものを除いて、それらのすべてを必要とします。

答えて

1

の値に基づいて、カウンターや印刷カンマを追加します。

値の追加が終了したら、rtrimを入力し、角括弧を追加して印刷します。

$myString = "["; 
if ($result=mysqli_query($conn,$sql)) { 
    while ($row=mysqli_fetch_row($result)) { 
    $locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]); 
    $locs = $locs_json.","; 
    $myString .= $locs; 
    } 
    mysqli_free_result($result); 
    $myString = rtrim($myString, ","); 
} 
$myString .= "]"; 

print $myString; 
+0

これで、私は@nanocvを削除したいものを含むすべてのカンマを取得します –

+0

@DiegoBarreiro私のせいです!それを修正! rtrimの結果を変数 – nanocv

+0

に再割当てする必要があります。@nanocvありがとうございます。今は完璧に動作します!ありがとうございました –

0
print "["; 
if ($result=mysqli_query($conn,$sql)) { 
    $i = 1; 
    while ($row=mysqli_fetch_row($result)) { 
    $locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]); 

    echo ($i >1 && !empty($locs_json)) ? ',' : ''; 
    print $locs_json; 
    $i++; 
    } 
    mysqli_free_result($result); 
} 
print "]"; 

シンプルなソリューション:私は変数に文字列を格納し、それを行うだろうカウンター

+0

を、私は、任意のカンマを得ることはありませんが、あなたはこれを試してみました、私は最後の1 –

+0

以外のすべてのコンマを取得したいですか? – Ima

+0

はい@Imaですが、出力は私が探しているものではありません。私はnanocv答えを使用して、それは私のために動作します –

1

あなたはJSON、手動でパートをエンコードし、json_encode()を使用してパートをエンコードしようとしているようです。あなたはjson_encode()は、すべての作業を行うに取得することができます。これにより

$rows = []; 
if ($result = mysqli_query($conn, $sql)) { 
    while ($row = mysqli_fetch_row($result)) { 
     $rows[] = [ 
      'lat' => $row[0], 
      'lng' => $row[1], 
      'dragable' => 'false', 
     ]; 
    } 
    mysqli_free_result($result); 
} 

echo json_encode($rows); 
+0

ありがとう、これもあまりにも@ghatzhat –

関連する問題