有没有办法在开头而不是结尾写入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);
答案 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您拥有正确的权限。