最初,我的脚本根据 URL 中的某些特定参数获取和解码 JSON,然后将这些值插入到数组中并重新编码为 JSON。我必须提出两个单独的请求,一个到 facebook,一个到两个 instagram,然后合并输出数据。我的问题是这两个数组似乎没有合并,只是输出 array_merge 函数中的最后一个数据集。
$igjsonData = json_decode((file_get_contents($igurl)));
$fbjsonData = json_decode((file_get_contents($fburl)));
$igresponse = array();
$igresponse["data"] = array();
foreach ($igjsonData->data as $igkey=>$igvalue) {
$igdata = array();
$igdata["network"] = "instagramicon.png";
$igdata["createdtime"] = $igvalue->caption->created_time;
$igdata["username"] = $igvalue->caption->from->username;
$igdata["profileimage"] = $igvalue->caption->from->profile_picture;
$igdata["caption"] = $igvalue->caption->text;
$igdata["postimage"] = $igvalue->images->standard_resolution->url;
array_push($igresponse["data"], $igdata);
}
$fbresponse = array();
$fbresponse["data"] = array();
foreach ($fbjsonData->data as $fbkey=>$fbvalue) {
$fbdata = array();
$fbdata["createdtime"] = $fbvalue->created_time;
$fbdata["username"] = $fbvalue->from->name;
$data["profileimage"] = "profile_picture";
$fbdata["caption"] = $fbvalue->message;
$data["postimage"] = "postimage";
array_push($fbresponse["data"], $fbdata);
}
$output = array_merge($igresponse, $fbresponse);
echo $output;
我需要在将数据重新编码为 JSON 之后合并数据,或者将它们合并为数组,在重新编码之前,我希望能够按创建时间的顺序排列数据,如果有人知道如何也这样做。不太确定这里的问题实际上是什么。
我已经部分让它工作了,而是使用“数组”函数,但是仍然想知道如何在我的新数组中按 createdtime 进行组织。
$output["data"] = array_merge($igresponse, $fbresponse);
$array = $output["data"];
echo json_encode($array);