如何在Json文件中使用PHP从顶部追加数据

时间:2018-09-28 12:58:33

标签: php jquery json

我正在使用php将数据附加到Json文件中。它可以正常工作,但是将数据附加到底部。我想在顶部添加数据...以便用户可以首先看到新数据。< / p>

这是我的php文件

<?php

$myFile = "news.json";
$arr_data = []; // create empty array

try {
    //Get form data
    $formdata = [
        'name'  => $_POST['name'],
        'price' => $_POST['price'],
    ];

    //Get data from existing json file
    $jsondata = file_get_contents($myFile);

    // converts json data into array
    $arr_data = json_decode($jsondata, true);

    // Push user data to array
    array_push($arr_data, $formdata);

    //Convert updated array to JSON
    $jsondata = json_encode($arr_data, JSON_PRETTY_PRINT);

    //write json data into data.json file
    if (file_put_contents($myFile, $jsondata)) {
        header("Location: index.html");
    } else {
        echo "error";
    }

} catch (Exception $e) {
    echo 'Caught exception: ', $e->getMessage(), "\n";
}

?>

并且输出json是

[
    {
        "name": "Iphone X",
        "price": "$1500 "
    },
  
    {
        "name": "Play Station Console",
        "price": "$500 "
    }
]

1 个答案:

答案 0 :(得分:0)

您可以使用简单的“ +”

请参见以下示例:

$a = [

    '1'=>2,
    '2'=>3
];
$b=[
    '3' => 4,
    '5' => 6
];

$c = $b + $a;

echo "<pre>";
print_r($c);

结果:

Array
(
    [3] => 4
    [5] => 6
    [1] => 2
    [2] => 3
)

根据您的情况进行更改:

array_push($arr_data,$formdata);

$arr_data = $formdata + $arr_data;

希望有帮助:)