添加到json对象顺序

时间:2014-10-09 02:22:13

标签: php json

有没有办法在开头而不是结尾写入json对象?当我现在添加它把它放在底部。我需要它在顶部,因为最新的数据是在开始。

<?php
    $file = file_get_contents('./data.json');
    $data = json_decode($file);
    unset($file);
    $data[] = array('data'=>'some data');
    file_put_contents('data.json',json_encode($data));
    unset($data);

1 个答案:

答案 0 :(得分:0)

在上面这个简单的案例中,就像@jeroen在评论中所说,你可以使用array_unshift()来达到这个目的:

所以我们先说我们data.json的内容如下:

[{"data":"somedata 1"},{"data":"somedata 2"},{"data":"somedata 3"}]

你想要为它添加值。

$file = file_get_contents('data.json'); // get the file
$data = json_decode($file, true); // turn it into an array (true flag)
unset($file);
// $data[] = array('data'=>'some data');
// Don't use this, this will append/push the data in the end
array_unshift($data, array('data' => 'some data 4')); // unshift it
file_put_contents('data.json',json_encode($data)); // put it back together again
unset($data);

最后,你会有这样的事情:

[{"data":"some data 4"},{"data":"somedata 1"},{"data":"somedata 2"},{"data":"somedata 3"}]

注意:Asumming您拥有正确的权限。