Esto es lo más cercano que he llegado a lo que tu quieres,
Código PHP:
$array_madre = Array("oso","perro","león","gato","tigre","tigre","perro","perro","perro","león","oso","oso","oso","oso","","","","","","tigre","tigre","tigre","gato","elefante","gato","perro");
function contarValoresArray($array)
{
$ultimo = '';
$contador = 0;
$consecutivos = 1;
//$flag = false;
$contar = array();
foreach($array as $value) {
if(empty($value))
continue;
if(isset($contar[$value])) {
# Sumo valor repetido
$contar[$value]['repeticiones']++;
if($value == $ultimo) {
$consecutivos++;
//$flag = true;
if($consecutivos > 1 &&isset($contar[$value]['consecutivos'][0])) {
$contador++;
} else {
$contar[$value]['consecutivos'][$contador] = $consecutivos;
$flag = false;
}
} else
//if($flag == false)
$consecutivos = 1;
} else {
$contar[$value]['repeticiones'] = 1;
}
$ultimo = $value;
}
return $contar;
}
echo "<pre>";
print_r(contarValoresArray($array_madre));
A partir de aquí te recomiendo que sigas esa lógica mentalmente con tu array y descubras que le falta, esto cuenta las veces que se repite consecutivamente un mismo elemento pero si hay otra repetición consecutiva no la cuenta. Con esto tienes el 99% hecho.