首页 > 解决方案 > Laravel、PHP 对象和数组操作

问题描述

所以我正在从数据库中检索一些记录,这些记录称为研究,对于该表中的每项研究,可能有一篇或多篇论文。所以现在我留下了$researches具有以下输出的变量:

{
"2": {
      "id": 2,
      "name": "Science",
     },
"4":{
      "id": 7,
      "name": "Biology",
    }    
"9":{
      "id": 7,
      "name": "Chemistry",
    }
}

打字时,$researches[2]->papers我得到了属于 ID 为 2 的研究的所有论文,所以我得到以下信息:

{
    "papers": [
        {
            "id": 456,
            "name": "XYZ",
            "title": "title X",
        },
        {
            "id": 470,
            "name": "YUI",
            "title": "title Y",
        }
    ]
}

我怎样才能得到所有研究的所有论文,所以输出将是:

{
        {
            "id": 456,
            "name": "XYZ",
            "title": "title X",
        },
        {
            "id": 470,
            "name": "YUI",
            "title": "title Y",
        },
        {
            "id": 488,
            "name": "RVF",
            "title": "Title Z",
        },
        {
         ...
        }

}

所以基本上,我想获取所有研究的所有论文并将它们存储在一个对象中。

标签: phparrayslaravelobjectcollections

解决方案


你可以像这样使用 Laravel 集合的pluck方法:

$papers = collect($researches)->pluck('papers')->toArray();

有关更多信息,请参阅Laravel 文档


推荐阅读