Php 在数组中查找连续值并创建按其计数分组的数组

Php 在数组中查找连续值并创建按其计数分组的数组,php,arrays,algorithm,loops,populate,Php,Arrays,Algorithm,Loops,Populate,我有这种数组: [0 => 0, 1 => 0, 2 => 0, 3 => 1, 4 => 1, 5 => 0, 6 => 0] 所以它的0区域与1区域相交,但我只对0区域感兴趣 因此,我试图实现的是将0的每个值分组到另一个计数数组中,如下所示: [Group1 => 3, Group2 => 2] 到目前为止我所做的: $arrayGroups = []; for($i=0;$i < count($myArr);$i++) {

我有这种数组:

[0 => 0, 1 => 0, 2 => 0, 3 => 1, 4 => 1, 5 => 0, 6 => 0]
所以它的
0
区域与
1
区域相交,但我只对
0
区域感兴趣

因此,我试图实现的是将0的每个值分组到另一个计数数组中,如下所示:

[Group1 => 3, Group2 => 2]
到目前为止我所做的:

$arrayGroups = [];
for($i=0;$i < count($myArr);$i++) {
  if($myArr[$i] == 0 && $myArr[$i+1] != 1) {
    (isset($arrayGroups [0])) ? $arrayGroups [0] += 1 : $arrayGroups [0] = 1;
  }
}
$arrayGroups=[];
对于($i=0;$i
这很有效,但是我不知道如何用更多的组填充数组


Thanx用于帮助

在新组启动时使用递增的计数器变量

$counter = 0;
$in_group = false;
$arrayGroups = [];
foreach ($myArr as $val) {
    if ($val == 0) {
        if ($in_group) {
            $arrayGroups[$counter]++;
        } else {
            $in_group = true;
            $counter++;
            $arrayGroups[$counter] = 1;
        }
    } else {
        $in_group = false;
    }
}

使用一个计数器变量,每当新组启动时,该变量都会递增

$counter = 0;
$in_group = false;
$arrayGroups = [];
foreach ($myArr as $val) {
    if ($val == 0) {
        if ($in_group) {
            $arrayGroups[$counter]++;
        } else {
            $in_group = true;
            $counter++;
            $arrayGroups[$counter] = 1;
        }
    } else {
        $in_group = false;
    }
}

我不太清楚您在尝试中到底尝试了什么,但您可以这样做:我不太清楚您在尝试中到底尝试了什么,但您可以这样做: