두 열의 값을 기준으로 일부 행의 데이터를 그룹화하여 합산하고 싶습니다.
내가 입력한 내용은 다음과 같습니다.
$array = [ ['FA',12.9], ['FA',12.9], ['FB',12.2], ['FC',12.3], ['FA',12.9], ['FB',12.9], ['FA',12.4], ];
그룹화된 행 값을 문자열로 인쇄하고 그 뒤에 x
및 총 발생 횟수를 다음 형식으로 인쇄하고 싶습니다.
FA 12.9x3 FB 12.2x3
각 그룹에서 값의 발생 횟수를 계산하는 코드를 작성했지만 다음 형식으로 인쇄하는 방법을 모르겠습니다.
$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; } } }
이 코드를 최적화하여 올바른 형식으로 인쇄할 수 있습니까?
원하는 출력:
FA 12.9x3 FB 12.2x1 FC 12.3x1 FB 12.9x1 FA 12.4x1
사용
으아악array_reduce
특별하고 유용한 방법으로 프로젝트를 이름별로 그룹화할 수 있습니다. 그런 다음 값별로 그룹화하고 개수를 계산합니다. 아이디어는 누적된 값이 포함된 배열을 키로 전달하는 것입니다.출력:
으아악