연속되는 값의 개수를 구하고 싶습니다. 채택완료
$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개
</strong></p>
<p>$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 "
$i // $j => $tmpArr[$i] == $tmpArr[$j] ";
if($tmpArr[$i] == $tmpArr[$j]) $cntArr[$i]+=1;
else{ $i= $j-1; break;}
}
}</p>
<p> </p>
<p>foreach($cntArr as $key=>$value){
if($tmpArr[$key] >0 ) echo "
$tmpArr[$key] ==> $value";
}</p>
<p> <strong>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$temp = "0,0,26,26,27,27,26,26,26,25";</p>
<p>$temp = array_count_values(explode(",", $temp));</p>
<p>foreach ($temp as $key => $value) {</p>
<p> // 반복되는 숫자가 키값으로 들어감</p>
<p> if ($key > 0) {</p>
<p> echo "{$key} = {$value}번".PHP_EOL;</p>
<p> }</p>
<p>}</p>
<p>

답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인