упростить этот массив (php) вывод json - PullRequest
0 голосов
/ 25 ноября 2011

У меня проблемы с форматированием JSON.По сути, у меня есть такая структура скрипта,

$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
$array1[] = array
(
    "stocks" => array
    (
    "0" => "apple" 
    "1" => "banana"
    "2" => "mango"
)
);
}

При выполнении она выводит (в формате JSON):

{
    stocks:
    {
        0 : apple,
        1 : banana,
        2 : mango
    }
}

{
    stocks:
    {
        0 : apple,
        1 : banana,
        2 : mango
    }
}

Моя проблема в том, какие изменения я должен внести, чтобы произвестивывод, как это:

{
    stocks:
    {
        0 : apple,
        1 : banana,
        2 : mango
    },

    stocks:
    {
        0 : apple,
        1 : banana,
        2 : mango
    }
}

Ответы [ 3 ]

5 голосов
/ 25 ноября 2011

Я думаю, что самый простой формат будет следующим:

$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
    $array1['stocks'][] = array
    (
             "0" => "apple" 
             "1" => "banana"
             "2" => "mango"
    );
 }

, который будет отображать вывод как:

{
    stocks: [
        {
            0 : apple,
            1 : banana,
            2 : mango
        },
        {
            0 : apple,
            1 : banana,
            2 : mango
        }
    ]
}
1 голос
/ 25 ноября 2011

В массиве (или объекте) не может быть двух элементов с одинаковым ключом. Если вы хотите, чтобы они оба были в одном массиве, вам необходимо назначить отдельные ключи каждому из них, например:

$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
    $array1["stocks{$i}"] = array
    (
        "0" => "apple" 
        "1" => "banana"
        "2" => "mango"
    );
}

Что бы вывести:

{
    stocks0:
    {
        0 : apple,
        1 : banana,
        2 : mango
    },

    stocks1:
    {
        0 : apple,
        1 : banana,
        2 : mango
    }
}
1 голос
/ 25 ноября 2011

Ваши ключи массива должны быть уникальными.Если это не так, значения текущего элемента будут перезаписываться на каждой итерации в цикле for.

$arr = array();
for ($i = 0; $i < 2 ; $i++) {
    $arr["stocks{$i}"] = array(
        "0" => "apple" 
        "1" => "banana"
        "2" => "mango"
    );
}
...