简化这个数组(php)json输出

时间:2011-11-25 00:53:00

标签: php arrays json

我在格式化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 个答案:

答案 0 :(得分:5)

我认为最简单的格式如下:

$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 :(得分:1)

您的数组键必须是唯一的。如果它们不是,那么当前项目的值将在for循环中的每次迭代中被覆盖。

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

答案 2 :(得分:1)

数组(或对象)中不能有两个具有相同键的元素。如果你想将它们放在一个数组中,你必须为每个数组分配单独的键,如下所示:

$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
    }
}