Почему я не могу установить нуль как первый ключ в массиве?

Результат этого кода:

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"
            }
        ]
    }
]

Можно ли заметить, как это пропускает первое число, которое является нулем? Вопрос: Почему?

8
задан Matthew Scharley 4 February 2010 в 21:08
поделиться

3 ответа

Вам нужен json_encode ($ a, JSON_FORCE_OBJECT). К сожалению, это добавлено только в версии 5.3.

2
ответ дан 6 December 2019 в 01:40
поделиться

Это хитрость, но вы можете добавить фиктивный элемент.

$a = array('dummy'=>1);
for($i = 0; $i <= 7; $i++) {
  ...
0
ответ дан 6 December 2019 в 01:40
поделиться

Вы не проиндексировали свой массив

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;

**EDIT:**На моем ноутбуке, если я делаю 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
                        )

                )

        )

)
0
ответ дан 6 December 2019 в 01:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: