为什么我不能将零设置为数组中的第一个键?

时间:2010-02-04 21:06:18

标签: php json arrays

此代码的结果:

for($i = 0; $i <= 7; $i++){

    $eachone[] = array ('a' => '1', 'b' => '2', 'c' => '3');

$a[] = array($i => $eachone);

unset($eachone);

}

$json_string = json_encode($a);
echo $json_string;

是:

[
    [
        [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    ],
    {
        "1": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "2": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "3": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "4": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "5": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "6": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    },
    {
        "7": [
            {
                "a": "1",
                "b": "2",
                "c": "3"
            }
        ]
    }
]

你能注意到它是如何跳过第一个数字,这是零吗?问题是:为什么?

3 个答案:

答案 0 :(得分:2)

你想要json_encode($ a,JSON_FORCE_OBJECT)。不幸的是,它只在5.3中添加。

答案 1 :(得分:0)

你没有索引你的数组

for($i = 0; $i <= 7; $i++)
{

    $eachone[$i] = array ('a' => '1', 'b' => '2', 'c' => '3');

$a[$i] = array($i => $eachone);

unset($eachone);

}

$json_string = json_encode($a);
echo $json_string;

**编辑:**如果我执行print_r($ a),在我的笔记本电脑上;我得到这个数组:哪个设置为零

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [1] => Array
        (
            [1] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [2] => Array
        (
            [2] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [3] => Array
        (
            [3] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [4] => Array
        (
            [4] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [5] => Array
        (
            [5] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [6] => Array
        (
            [6] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

    [7] => Array
        (
            [7] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                        )

                )

        )

)

答案 2 :(得分:0)

这是一个黑客,但你可以添加一个虚拟元素。

$a = array('dummy'=>1);
for($i = 0; $i <= 7; $i++) {
  ...