【发布时间】:2013-08-01 22:48:17
【问题描述】:
最初我的脚本是根据放置在 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);
【问题讨论】: