Php 如何验证数组中的两个日期是否与Carbon不相同
我使用的是Laravel框架,我有一个日期数组,我想检查是否存在两个相同的日期。数组是这样的Php 如何验证数组中的两个日期是否与Carbon不相同,php,laravel,Php,Laravel,我使用的是Laravel框架,我有一个日期数组,我想检查是否存在两个相同的日期。数组是这样的 array:5 [▼ 0 => "2020-04-11" 1 => "2020-04-11" 2 => "2020-04-12" 3 => "2020-04-13" 4 => "2020-04-21" ] 我编写了下面的函数来检查,它可以工作,但我想知道是否有更好的方法来实现这一点,因为我必须很快扩展它,以便有更多的嵌套循环 private funct
array:5 [▼
0 => "2020-04-11"
1 => "2020-04-11"
2 => "2020-04-12"
3 => "2020-04-13"
4 => "2020-04-21"
]
我编写了下面的函数来检查,它可以工作,但我想知道是否有更好的方法来实现这一点,因为我必须很快扩展它,以便有更多的嵌套循环
private function validateFlyingDatesAreOverlapping($flyingDates)
{
foreach ($flyingDates as $key => $datePick) {
$datePickInstance = Carbon::parse($datePick)->startOfDay();
foreach ($flyingDates as $index => $dateCompare) {
$dateCompare = Carbon::parse($dateCompare)->startOfDay();
if ($key != $index) {
$result = $datePickInstance->eq($dateCompare);
if ($result) {
return true;
}
}
}
}
return false;
}
您可以使用收集
unique
和count
方法:
$is\u same\u exists=!(collect($data)->count()==collect($data)->unique()->count());
您可以使用收集唯一
和计数
方法:
$is\u same\u exists=!(collect($data)->count()==collect($data)->unique()->count());
如果您只需要知道是否存在重复项而不获取值(您的函数返回布尔值,因此看起来这就是您所需要的),那么您可以将初始数组中的项计数与数组中唯一项的计数进行比较,如下所示:
if (count(array_unique($array)) != count($array)) {
//duplicates is exists
}
如果您只需要知道是否存在重复项而不获取值(您的函数返回布尔值,因此看起来这就是您需要的),那么您可以将初始数组中的项计数与数组中唯一项的计数进行比较,如下所示:
if (count(array_unique($array)) != count($array)) {
//duplicates is exists
}
看这个看这个