我已经测试了您共享的两个数组,即
$status[0]['status'] = "Green";
$status[1]['status'] = "Red";
$status[2]['status'] = "Red";
$status[3]['status'] = "Green";
$status[4]['status'] = "Green";
$status[5]['status'] = "Green";
$status[6]['status'] = "Green";
$status[7]['status'] = "Grey";
和
$status[0]['status'] = "Green";
$status[1]['status'] = "Green";
$status[2]['status'] = "Green";
$status[3]['status'] = "Green";
$status[4]['status'] = "Red";
$status[5]['status'] = "Red";
$status[6]['status'] = "Grey";
$status[7]['status'] = "Red";
$status[8]['status'] = "Grey";
$status[9]['status'] = "Green";
并且我的代码可以按预期运行.
以下是我的代码:
$status = array();
$status[0]['status'] = "Green";
$status[1]['status'] = "Green";
$status[2]['status'] = "Green";
$status[3]['status'] = "Green";
$status[4]['status'] = "Red";
$status[5]['status'] = "Red";
$status[6]['status'] = "Grey";
$status[7]['status'] = "Red";
$status[8]['status'] = "Grey";
$status[9]['status'] = "Green";
$highestCounts = array(
'Green' => 0,
'Red' => 0,
'Grey' => 0
);
$currentCounts = array(
'Green' => 0,
'Red' => 0,
'Grey' => 0
);
$previousStatus = '';
foreach ($status as $item) {
$currentStatus = $item['status'];
if ($currentStatus === $previousStatus) {
$currentCounts[$currentStatus]++;
} else {
$currentCounts[$currentStatus] = 1;
}
$previousStatus = $currentStatus;
// Update the highest count if necessary
if ($currentCounts[$currentStatus] > $highestCounts[$currentStatus]) {
$highestCounts[$currentStatus] = $currentCounts[$currentStatus];
}
}
// Print the results
foreach ($highestCounts as $status => $count) {
echo $status . ': ' . $count . "\n";
}