-1

こんにちは私はJSON文字列を準備するためにforループを使用しています

// JSON配列を準備します[obj1、obj2、obj3 ....]

エコー "[";

foreach($ usernames as $ value){
    //$usernameのJSON文字列を準備します
    //例{"username":$ value}

    //配列に次の要素がある場合は、コンマを挿入します
    エコー "、";
}

エコー "]";

私の問題は、JSONの末尾にコンマがあるとフォーマットが正しくないことです。forループが配列の最後に到達し、最後の要素を準備して、最後のコンマ文字を除くすべてを追加しないようにするにはどうすればよいですか?

ありがとうございました

4

4 に答える 4

5

これを行うために使用していない理由はありますjson_encodeか?を使用して1回のクイック呼び出しで、通常のphp配列をJSONに変換できますjson_encode

$arr = array("a"=>"one", "b"=>"two");

echo $json_encode($arr);

http://php.net/manual/en/function.json-encode.php

于 2011-09-19T02:13:35.740 に答える
3

forを使用して実行する必要がある場合は、コンマの出力を先頭に変更します。最初の反復でない場合にのみ印刷してください。

于 2011-09-19T02:15:42.467 に答える
1

さて、あなたはそれのすべてを変数に保存することができます、そしてそれが行われた後あなたはただすることができます:

$jsonVar = substr($jsonVar, 0, -1);

最後の「]」を追加する前に

于 2011-09-19T02:13:46.953 に答える
0

問題に固有の解決策

echo "[";
ob_start();
foreach ($usernames as $value){
    //prepare a JSON String for $username
    //e.g. {"username":$value}

    // insert comma if there is next element in the array
    echo ",";
}
$data = ob_get_contents();
ob_end_clean() ;
echo rtrim($data,',');
echo "]"

しかし、正しい/標準/より簡単な方法は、単にjson_encode($ usernames);を実行することです。

于 2011-09-19T02:24:20.660 に答える