如何区分两个不同的集合?

马克

所以我的流程是这样的

API 调用一个 json 文件,检索看起来像这样的数据:(让我们调用这个 API 调用)

    [
      {
        "id": 5123
        "title": "Title 1",
        "sizeOnDisk": 2040422598,
        "status": "released",
        "website": "",
        ...
      },
      {
        "id": 6123
        "title": "Title 2",
        "sizeOnDisk": 2040422598,
        "status": "released",
        "website": "",
        ...
      },
      {
        "id": 7123
        "title": "Title 3",
        "sizeOnDisk": 2040422598,
        "status": "released",
        "website": "",
        ...
      },

    ]

现在,在我获得这些数据后,我从一个数据库表中获取所有数据,它看起来像这样:

| id |  title  | api_id |
------------------------
| 10 | Title 1 |  5123  |
| 12 | Title 3 |  7123  |

现在,如果您注意到,我在数据库的 api 中缺少标题 2。我正在尝试从不在数据库中的 api 中返回丢失的项目。

截至目前,我已经弄清楚如何返回丢失项目的 ID,如下所示:

$api = new Api();
$remoteIds = collect(json_decode(file_get_contents($api->url('movie'))))->pluck('id');
$localIds = Movie::all()->pluck('radarr_id');
$diff = $remoteIds->diff($localIds)->flatten();
return $diff;

...但我需要返回整行。如果我删除->pluck('id'),我会收到一个Object of class stdClass could not be converted to string错误..

那么我怎么能从 api 返回丢失项目的全部数据呢?我知道我可以做,array_intersect_key但关键是不同的..

瓦莱里奥·巴贝拉

您可以使用filter而不是diff

$api = new Api();

$remoteIds = collect(json_decode(file_get_contents($api->url('movie'))));

$movies = Movie::all()->pluck('id')->values();

$diff = $remoteIds->filter(function($item) use ($movies) {
    return in_array($item->id, $movies);
});

return $diff; // Get the list of objects, not only ids

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何区分两个不同 DPI 的尺寸

如何区分两个不同的意图相同的活动?

如何将两个不同的集合绑定到两个不同的ListPickers

如何配对两个不同集合中的元素?

如何从Mongodb中的两个不同集合进行合并?

如何使用幽灵合并两个不同的集合?

如何模拟两个相同的mongo集合,但结果不同?

如何使用SemanticComparison比较两个匿名类型或两个不同类型的集合

Git:如何区分不同分支中的两个不同文件?

Git:如何在不同的提交中区分两个不同的文件?

MongoDB聚合:如何从两个不同集合的两个数组中查找公共元素

如何区分两个Sublime窗口

如何区分两个命令的输出?

如何区分两个XML文件?

如何区分两个命令的输出?

如何区分两个提交按钮

Pytorch - 如何区分两个参数

如何在OpenLayers中区分两个不同的矢量层?

如何区分同一IP地址上的两个不同的UDP客户端?

如何区分具有相同错误代码的两个不同错误?

如何区分两个同名的不同命名实体?

在NiFi上,如何区分来自两个不同的Kakfa的消息?

如何区分两个不同目录中的不同文件并将不同文件存储在新目录中

如何查询两个集合?

如何合并两个mongo集合?

如何结合两个节点集合?

如何合并来自两个不同集合的股票数据?

如何根据不同的Java类领域比较两个集合的“对等”?

ios-如何在集合视图中合并两个不同的部分