>  Q&A  >  본문

그룹별로 그룹화하고, 각 그룹의 발생 합계를 계산하고, 데이터를 형식화된 문자열로 인쇄합니다.

<p>두 열의 값을 기준으로 일부 행의 데이터를 그룹화하여 합산하고 싶습니다. </p> <p>내가 입력한 내용은 다음과 같습니다.</p> <pre class="brush:php;toolbar:false;">$array = [ ['FA',12.9], ['FA',12.9], ['FB',12.2], ['FC',12.3], ['FA',12.9], ['FB',12.9], ['FA',12.4], ];</pre> <p>그룹화된 행 값을 문자열로 인쇄하고 그 뒤에 <code>x</code> 및 총 발생 횟수를 다음 형식으로 인쇄하고 싶습니다. </p> <pre class="brush:php;toolbar:false;">FA 12.9x3 FB 12.2x3</pre> <p>각 그룹에서 값의 발생 횟수를 계산하는 코드를 작성했지만 다음 형식으로 인쇄하는 방법을 모르겠습니다. </p> <pre class="brush:php;toolbar:false;">$new = []; foreach ($array as $key=> $value) { if (!array_key_exists($value[0],$new)) { $new[$value[0]]=[strval($value[1])=>1]; } 또 다른 { if (!array_key_exists(strval($value[1]),$new[$value[0]])) { $new[$value[0]][strval($value[1])]=1; // $no+=1; } 또 다른 { $count= $new[$value[0]]; $count=$count[strval($value[1])]; $개수+=1; $new[$value[0]][strval($value[1])]=$count; } } }</pre> <p>이 코드를 최적화하여 올바른 형식으로 인쇄할 수 있습니까? </p> <p>원하는 출력: </p> <pre class="brush:php;toolbar:false;">FA 12.9x3 FB 12.2x1 FC 12.3x1 FB 12.9x1 FA 12.4x1</pre></p>
P粉970736384P粉970736384433일 전484

모든 응답(1)나는 대답할 것이다

  • P粉323050780

    P粉3230507802023-09-06 09:57:01

    사용 array_reduce특별하고 유용한 방법으로 프로젝트를 이름별로 그룹화할 수 있습니다. 그런 다음 값별로 그룹화하고 개수를 계산합니다. 아이디어는 누적된 값이 포함된 배열을 키로 전달하는 것입니다.

    으아악

    출력:

    으아악

    회신하다
    0
  • 취소회신하다