연속되는 값의 개수를 구하고 싶습니다.
본문
$temp="0,0,26,26,27,27,26,26,26,25";
위와 같은 변수에서 0보다 큰수중에서 연속해서 중복 되는 값의 개수를 구하려 합니다.(반복허용)
나와야 하는 값이
26 = 2번
27 = 2번
26 = 3번
25 = 1번
이렇습니다.
26은 앞에서 한번 나왔지만 뒤에 다시 나오는 경우 반복을 허용하여 다시 연이어나오는 개수를 찾은 것입니다.
array_count_values로는 의도하는 값이 나오지 않고
배열에 담아서 어찌어찌 해봤는데 제자리만 맴돌고 소스는 길어지고 답은 나오지 않고 그렇네요...
추석연휴 잘 보내시고 코로나 조심하세요^^
미리 감사합니다.
답변 2
$temp = "0,0,26,26,27,27,26,26,26,25";
$tmpArr = explode(",", $temp);
$CNT = count($tmpArr);
for($i=0; $i<$CNT; $i++){ $cntArr[$i]=1;
for($j= $i+1; $j < $CNT; $j++){
//echo "<br> $i // $j => $tmpArr[$i] == $tmpArr[$j] ";
if($tmpArr[$i] == $tmpArr[$j]) $cntArr[$i]+=1;
else{ $i= $j-1; break;}
}
}
foreach($cntArr as $key=>$value){
if($tmpArr[$key] >0 ) echo "<br> $tmpArr[$key] ==> $value";
}
$temp = "0,0,26,26,27,27,26,26,26,25";
$temp = array_count_values(explode(",", $temp));
foreach ($temp as $key => $value) {
// 반복되는 숫자가 키값으로 들어감
if ($key > 0) {
echo "{$key} = {$value}번".PHP_EOL;
}
}
!-->
답변을 작성하시기 전에 로그인 해주세요.