Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 如何验证数组中的两个日期是否与Carbon不相同_Php_Laravel - Fatal编程技术网

Php 如何验证数组中的两个日期是否与Carbon不相同

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

我使用的是Laravel框架,我有一个日期数组,我想检查是否存在两个相同的日期。数组是这样的

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
}
看这个看这个