【发布时间】:2021-08-01 21:38:06
【问题描述】:
foreach ($this->data as $row) {
$year = $row[$dataPositions['year']];
$name = $row[$dataPositions['name']];
$foundgames = &$this->foundgames;
$game = $games->first(function($game, $key) use ($year, $name) {
if ( $year === $game->year && $game->name === $name ) {
return true;
}
});
if ($game) {
$game->number = $number;
$game->catalog_name = $name;
$this->foundgames[] = $game;
$games = $games->filter(function($gam) use ($game) {
return $game->id !== $gam->id;
});
}
}
此时我正确地 gwr 第一场比赛,其他比赛将变为假,但如果某些重复匹配,我如何才能让所有比赛都为假?
【问题讨论】:
-
不清楚你在问什么。你能解释一下你想要的结果吗?
-
$this->data 数据量大,哪里有重复。 $games -> 游戏当前数据库如果有重复,需要从 $game = $games->first(function($game, $key) use ($year, $name) { 中删除它
-
所以您想删除集合中的重复对象,还是?
-
正确,仅按年份和名称值唯一
-
查看 Laravels Collection method called 'unique'
标签: php arrays laravel laravel-5 filter