我正在尝试使用php创建一个JSON数组。每次我发布一个新数组时,新数组都需要附加在旧数组的前面。
我的代码工作正常,它会创建一种奇怪的格式,如[{},[{},[{}]]]
。
我的JSON数组所需的格式为[{},{},{}...]
[{"Reg_Date":"28-07-2999","Name":"aaa","Surname":"aaa","VideoPath":"aaa","MyComment":"aaa", "ThumbPath":"aaa", "UserId":"aaa"},
{"Reg_Date":"18-07-2015","Name":"bbb","Surname":"bbb","bbb":"bbb","MyComment":"bbb", "ThumbPath":"bbb", "UserId":"bbb"}]
如何正确创建数组?
PHP:
$results = array ( array(
"Reg_Date" => $Reg_Date,
"Name" => $NameUser,
"Surname" => $SurnameUser,
"VideoPath" => $VideoPath,
"MyComment" => $MyComment,
"ThumbPath" => $ThumbPath,
"UserId" => $UserId
));
$inp = file_get_contents('video_JSON_Test.json');
$arr = json_decode($inp);
array_push($results, $arr);
$fp_login = fopen('video_JSON_Test.json', w);
fwrite($fp_login, json_encode($results));
fclose($fp_login);
print_r($results);
echo $NameUser . $SurnameUser, $MyComment . "\n";
echo json_encode($arr)
答案 0 :(得分:2)
替换:
$arr = json_decode($inp);
array_push($results, $arr);
使用:
$arr = json_decode($inp, true);
$results = array_merge($results, $arr);
答案 1 :(得分:0)
您创建双数组(array( array() )
)并将其分配给$results
变量。接下来,将此double数组推送到类似构造中的早期创建的数组。看:
1步:array( array() )
,我们在此阵列上制作array_push()
。
2步:array( array(), array( array() ) )
,因为我们的双数组落在数组中。
用单个数组替换double数组并创建空容器。所以$results = array();
和$resultsContainer = array();
。然后,使用值填充$results
数组并使用array_push($resultsContainer, $results)
。
使用array_merge()
代替array_push()
。详情:PHP: array_merge。但重要的是:你必须要有两个数组。查看json_decode()
的文档:PHP: json_decode。此函数可以返回对象而不是数组。对关联数组使用第二个参数true
。