如何格式化将从PHP发送回javascript的json文件?

时间:2015-10-27 17:31:53

标签: php json formatting

我想将我的json格式化为:

"items": [{
        "item1": "text"
        'item2': "text",
        'item3': "text",
        'item4': number,
        'item5': number,
        'item6': "text",
        'item7': "text"
        },
        "item1": "text"
        'item2': "text",
        'item3': "text",
        'item4': number,
        'item5': number,
        'item6': "text",
        'item7': "text"
}] etc...

问题在于我只能弄清楚如何将我编码的数组编码为索引数组,这会导致关联数组。

我在循环中尝试了如下代码,显然是为了获得多行:

$final_return['items'] = array
    (
        'item1' => $item1,
        'item2' => $item2,
        'item3' => $item3,
        'item4' => $item4,
        'item5' => $item5,
        'item6' => $item6,
        'item7' => $item7
    );
echo json_encode($final_return);

但是这只返回抛出到数组中的最后一组项。我已经使用索引版本,但我希望在整个集合前面的items标签。

2 个答案:

答案 0 :(得分:0)

当您执行$ final_return [' items'] = array(...)时,您将在键'项目'上分配新值。 $ final_return数组。

你想要的是$ final_return [' items'] [] = array(....)然后再将一个新数组推入该数组。

答案 1 :(得分:0)

你需要一个数组内部的数组来实现它。

试试这个:

$final_return['items'] = array(
    array
    (
        'item1' => '1',
        'item2' => '2',
        'item3' => '3',
        'item4' => '4',
        'item5' => '5',
        'item6' => '6',
        'item7' => '7'
    ),
    array
    (
        'item1' => '1',
        'item2' => '2',
        'item3' => '3',
        'item4' => '4',
        'item5' => '5',
        'item6' => '6',
        'item7' => '7'
    )
);
echo json_encode($final_return);

您可以使用array_push()将更多数组添加到数组

$data = array
    (
        'item1' => '1',
        'item2' => '2',
        'item3' => '3',
        'item4' => '4',
        'item5' => '5',
        'item6' => '6',
        'item7' => '7'
    );
$final_return['items'] = array();

array_push($final_return['items'], $data, $data);
echo json_encode($final_return);