最初に、私のスクリプトは、URL に配置された特定のパラメーターに従って JSON をフェッチしてデコードします。これらの値は配列に挿入され、JSON として再エンコードされます。1 つは Facebook に、もう 1 つは 2 つの instagram に、2 つの別々のリクエストを作成し、出力データをマージする必要があります。私の問題は、2 つの配列がマージされていないようで、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);