-1

次の配列構造があります。

Array
(
    [t] => 812
    [0] => Array
    (
        [5] => 649
        [6] => 12
    )

    [2] => Array
    (
        [0] => 10
    )

    [3] => Array
    (
        [0] => 1
    )

    [4] => Array
    (
        [0] => 152
    )
)

現時点では、すべての配列インデックス (t を除く) は整数です。

json_encode() を使用して同等の JSON に変換したいのですが、そうすると、インデックスが 1 つしかない配列 (インデックス 0) が配列ではなく整数に変換されます。

例えば

[2] => Array
(
    [0] => 10
)

に変換されます。

{"2":[10]

それ以外の..

{"2":[0:10]

問題が解決した場合は、JSON で整数ではなく文字列インデックスを使用しても問題ありません。

{"2":["0":10]}

これを解決する方法について何か考えはありますか?

4

2 に答える 2

4

それらは単一の整数に変換されるのではなく、要素が 1 つだけの配列に変換されます。

JSON では、角括弧[]は配列を表し、中括弧{}はオブジェクトを表します。

例のようにオブジェクトを強制的に出力したい場合はjson_encode、オプションを選択できますJSON_FORCE_OBJECTdocu を参照):

$encoded = json_encode( yourArray, JSON_FORCE_OBJECT );
于 2012-07-10T09:29:10.893 に答える
2

JSON_FORCE_OBJECTでフラグを使用しjson_encodeます。

于 2012-07-10T09:30:03.597 に答える