PHP使用正确的结构将内容添加到JSON文件(Lazy Loader)

时间:2017-07-31 11:26:42

标签: php html json

我正在尝试使用正确的格式创建一个JSON文件,供Lazy Loader通过PHP使用。我将内容放在一个关联数组中,并将其放在另一个多维数组中。

以下是我正在使用的代码:

<?php

//I will fetch this content from the database later. This is just for example.
$posts = array("<div>Item 1</div>", "<div>Item 2</div>", "<div>Item 3</div>");

$items = array();
$length = count($posts);

for($i = 0; $i < $length; $i++){
    $items["html"] = $posts[$i];
}

$posts_datas = array("items" => array($items));

/* JSON file */
file_put_contents('lazyloader/datas.json', json_encode($posts_datas, JSON_PRETTY_PRINT));

?>

创建文件并且只有一个元素具有正确的格式。我需要他们。

JSON文件代码:

{
    "items": [
        {"html": "<div>Item 3<\/div>"}
    ]
}

我想要的代码:

{
     "items": [
         {"html": "<div>Item 1<\/div>"},
         {"html": "<div>Item 2<\/div>"},          
         {"html": "<div>Item 3<\/div>"}
     ]
}

我需要你的帮助。有人有解决方案吗?谢谢。

1 个答案:

答案 0 :(得分:1)

一旦我更好地理解了这个问题,就可以修改。

假设通过查询从您的数据库中收集$posts,这将达到您想要的效果。

//I will fetch this content from the database later. This is just for example.
$posts = array("<div>Item 1</div>", "<div>Item 2</div>", "<div>Item 3</div>");

$items = array();

foreach ( $posts as $post){
    $items['items'][] = ['html' => $post];
}   

// now rewrite the file with the new content added
file_put_contents('datas.json', json_encode($items, JSON_PRETTY_PRINT));

结果将是

{
    "items": [
        {
            "html": "<div>Item 1<\/div>"
        },
        {
            "html": "<div>Item 2<\/div>"
        },
        {
            "html": "<div>Item 3<\/div>"
        }
    ]
}