比较关联数组中foreach循环内的下一个元素

Comparing Next element inside foreach loop in associate array

我正在尝试访问 php 中关联数组的下一个键值对,以检查下一个键值对是否相同。

foreach($array as $key => $value){

    $b = $value['date'];
    $c = ($key+1)['date']; // As ($key+1) is integer value not an array

    if($b == $c){     
     statement        
    }
}

但是,这种方法是在下面抛出,这似乎是合乎逻辑的。

ErrorException: Trying to access array offset on value of type int

有什么方法可以在关联数组的 foreach 循环中找到下一个元素。

array (
  0 => 
  array (
    'date' => "2019-03-31",
    'a' => '1',
    'b' => '1',
  ),
  1 => 
  array (
    'date' => "2019-04-02",   
    'a' => '1',
    'b' => '1',
  ),
  2 => 
  array (
    'date' => "2019-04-02",  
    'a' => '2',
    'b' => '1',
  )
)

我不知道你从哪里得到 $date 你需要 'date',而且你没有在 $c 作业中的任何地方使用 $array。它可以缩短,但使用您的代码,只需检查 next 元素:

foreach($array as $value) {
    $b = $value['date'];
    $c = next($array)['date'] ?? false;
    
    if($b == $c) {     
        echo 'Yes';
    }
}

如果它们是顺序整数键,那么您可以按照自己的方式进行,只需检查 $key+1 是否已设置:

foreach($array as $key => $value) {
    $b = $value['date'];
    $c = $array[$key+1]['date'] ?? false;
    
    if($b == $c) {     
        echo 'Yes';
    }
}