Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从数组中删除除具有相同属性的对象外的所有对象_Php_Laravel_Eloquent - Fatal编程技术网

PHP从数组中删除除具有相同属性的对象外的所有对象

PHP从数组中删除除具有相同属性的对象外的所有对象,php,laravel,eloquent,Php,Laravel,Eloquent,使用Eloquent,我想从$outputs数组中删除2个带有'Title'B的对象,并只保留一个 $outputs包含以下信息: [ { "Title": "A", "Publication date": "2013", }, { "Title": "B", "Publication date": "2010", }, { "Title": "B", "Pub

使用Eloquent,我想从$outputs数组中删除2个带有'Title'B的对象,并只保留一个

$outputs包含以下信息:

[
    {
        "Title": "A",
        "Publication date": "2013",
    },
    {
        "Title": "B",
        "Publication date": "2010",
    },
    {
        "Title": "B",
        "Publication date": "2999",
    },
    {
        "Title": "B",
        "Publication date": "5555",
    },
];

我知道有很多关于这方面的帖子,但我自己找不到一个方法。任何帮助都将不胜感激。

您可以在查询中使用
destinct
groupBy
来完成此操作

如果这是针对数组/集合的,而不是雄辩的查询,则可以使用collection
keyBy
方法获取唯一值

$data=[
[
“标题”=>“A”,
“出版日期”=>“2013年”,
],
[
“标题”=>“B”,
“出版日期”=>“2010年”,
],
[
“标题”=>“B”,
“出版日期”=>“2999”,
],
[
“标题”=>“B”,
“出版日期”=>“5555”,
],
];
$collection=collect($data)->keyBy('Title');
然后您的输出将如下所示:

集合{#1389
#项目:阵列:2[
“A”=>数组:2[
“标题”=>“A”
“发布日期”=>“2013”
]
“B”=>数组:2[
“标题”=>“B”
“发布日期”=>“5555”
]
]
}
keyBy
方法将为每个标题提供集合中的最后一项,因此,如果要获取特定项,可以在调用
keyBy
之前对集合进行排序:

//获取每个具有最高出版日期的标题
$collection=collect($data)->sortBy('publicationdate')->keyBy('Title');
//获取具有最低出版日期的每个标题
$collection=collect($data)->sortByDesc('publicationdate')->keyBy('Title');
如果要返回没有键“A”和“B”的数组,可以执行以下操作:

$collection=collect($data)->keyBy('Title')->values()->toArray();
输出:

数组:2[
0=>数组:2[
“标题”=>“A”
“发布日期”=>“2013”
]
1=>数组:2[
“标题”=>“B”
“发布日期”=>“5555”
]
]

请在此处发布您的疑问。只是让问题更清楚一些,以便理解。添加一些代码将是一个好主意@João dominguest这是我构建的一个数组,无法使用distinct,因为数据来自不同的源谢谢!我做了疯狂的循环试图移除/推送,尝试了一切。只有一行代码可以完成所有的事情,哈哈,谢谢。