Php 从多个url获取json数据,然后在新url中再次推送它

Php 从多个url获取json数据,然后在新url中再次推送它,php,Php,我有两个api,一个用于帖子和评论。这是帖子的形式: [ { Iduser: 1, id: 1, subject: "subject", description: "description" }, { Iduser: 1, id: 2, subject: "subject", description: "description" }, { Iduser: 1, id: 3, subject: "subject", description: "description" }] 这是api评论的形式

我有两个api,一个用于帖子和评论。这是帖子的形式:

[
{
Iduser: 1,
id: 1,
subject: "subject",
description: "description"
},
{
Iduser: 1,
id: 2,
subject: "subject",
description: "description"
},
{
Iduser: 1,
id: 3,
subject: "subject",
description: "description"
}]
这是api评论的形式:

[
{
Idpost: 1,
id: 1,
title: "title",
description: "description"
},
{
Idpost: 1,
id: 2,
title: "title",
description: "description"
},
{
Idpost: 1,
id: 3,
title: "title",
description: "description"
}]
因此,我希望获得用户id并推送新的json api,该api在每个用户id的一个json对象中包含帖子及其注释

这是我开始的代码:

<?php 
$json1 = file_get_contents('https://');
$json2 = file_get_contents('https://');

$data1 = json_decode($json1,true);
$data2 = json_decode($json2,true);

$userId = "1";
$user = "";
 foreach ($data1 as $key => $value) {
   if($value['userId'] == $userId)
   {
       $user = $value['userId'];
echo $user
   }

 }

?>
我刚刚在json中得到了100多个对象,其中id=1


如何解决此问题

必须在条件中向数组添加ID,否则Foreach将添加保留在变量中的旧数据

 foreach ($data1 as $key => $value) {
       if($value['userId'] == $userId)
       {
           $user = $value['userId'];

           $channels_item[] = ["id" => $user];
       }

     }

    echo json_encode($channels_item);
这应该会有所帮助

    <?php

    error_reporting(0);
    $json1 = file_get_contents('https://jsonplaceholder.typicode.com/posts');

    $json2 = file_get_contents('https://jsonplaceholder.typicode.com/comments');

    $data1 = json_decode($json1,true);
    $data2 = json_decode($json2,true);

    print_r($data1);

    foreach($data1 as $val){
        foreach($data2 as $value){
            if(empty($val['Iduser'])){break;}
            if($val['Iduser'] === $value['Idpost']){
                $result[] = ["Idpost" => $value['Idpost'], "Iduser" => $val["Iduser"], "title" => $value["title"], "description" => $value["description"], "subject" => $val["subject"], "descriptionjson1" => $val["description"]];
            }
        }
    }

    print_r($result);
?>


欢迎来到SO!谢谢你的帮助。只有代码的答案没有多大帮助。请考虑向您的代码添加一些描述、解释和/或一些注释,以使其对未来的访问者有用。这解决了回声问题,但如何才能让用户ID不重复,只得到一次它的所有帖子和评论?@Sergey B.@GNDevs用户ID来自哪里?您是否手动设置它?你有权访问数据库吗?我没有访问数据库的权限,这就是为什么我不能用quires和userID来解决这个问题,我的意思是用它Iduser,它来自postsapi,你可以看到上面那个api的形式,我现在没有手动设置它,只是为了测试,我这样做了,但我应该从api获得它们,并自动生成一个id,值为1和一个id使用值2,然后使用它推送属于此id@Sergey的所有帖子和评论B@GNDevs提供一个带有UserID的API的完整示例。谢谢
    <?php

    error_reporting(0);
    $json1 = file_get_contents('https://jsonplaceholder.typicode.com/posts');

    $json2 = file_get_contents('https://jsonplaceholder.typicode.com/comments');

    $data1 = json_decode($json1,true);
    $data2 = json_decode($json2,true);

    print_r($data1);

    foreach($data1 as $val){
        foreach($data2 as $value){
            if(empty($val['Iduser'])){break;}
            if($val['Iduser'] === $value['Idpost']){
                $result[] = ["Idpost" => $value['Idpost'], "Iduser" => $val["Iduser"], "title" => $value["title"], "description" => $value["description"], "subject" => $val["subject"], "descriptionjson1" => $val["description"]];
            }
        }
    }

    print_r($result);
?>