Array_Count_Values ()는 배열을 인수로 가져 와서 키가 배열에 나타나는 유일한 요소이며 값이 원래 배열에 나타나는 횟수 인 경우 새 배열을 반환하는 내장 PHP 함수입니다. 함수의 구문은 다음과 같습니다.
array_count_values(array $array): array
이 함수의 반환 값은 연관 배열이며, 여기서 각 요소의 키는 원래 배열의 값이고 값은 배열에 값이 나타나는 횟수입니다.
웹 사이트 액세스 로그가 포함 된 다양한 사용자 ID가 있다고 가정하고 사용자 당 방문 수를 계산하고 히스토그램을 생성하려고합니다. 예는 다음과 같습니다.
<?php
// 이것이 웹 사이트 로그에서 얻은 사용자 액세스 데이터라고 가정합니다.
$userVisits = ['user1', 'user2', 'user3', 'user1', 'user4', 'user1', 'user2'];
// 사용 array_count_values 기능 사용자 당 방문 횟수를 얻을 수 있습니다
$visitCounts = array_count_values($userVisits);
// 주파수 데이터 배열 인쇄
print_r($visitCounts);
?>
위의 코드에서 array_count_values () 함수는 각 사용자가 $ uservisits 배열에 나타나는 횟수를 계산합니다. 출력은 다음과 같습니다.
Array
(
[user1] => 3
[user2] => 2
[user3] => 1
[user4] => 1
)
위의 예에 따르면 각 사용자에 대한 액세스 빈도 데이터를 얻었습니다. 다음 으로이 데이터를 막대 차트를 그리는 데 적합한 데이터 형식으로 포맷 할 수 있습니다. 일반적으로 막대 차트의 데이터 형식은 키가 범주 인 배열 (이 경우 사용자)이고 값은 해당 범주의 빈도 (즉, 방문 횟수)입니다.
예를 들어, 다음 코드를 사용하여 주파수 데이터를 막대 차트를 그리는 데 필요한 형식으로 변환 할 수 있습니다.
<?php
// 우리가 이미 주파수 데이터 배열을 얻었다고 가정 해 봅시다 $visitCounts
$visitCounts = array_count_values($userVisits);
// 막대 차트로 변환하는 데 필요한 데이터 형식
$barChartData = [];
foreach ($visitCounts as $user => $count) {
$barChartData[] = [
'label' => $user,
'value' => $count
];
}
// 인쇄 막대 차트 데이터
print_r($barChartData);
?>
출력은 각 사용자에 대한 키 값 쌍과 방문 횟수를 포함하는 배열이므로 막대 차트를 생성하는 데 적합합니다.
Array
(
[0] => Array
(
[label] => user1
[value] => 3
)
[1] => Array
(
[label] => user2
[value] => 2
)
[2] => Array
(
[label] => user3
[value] => 1
)
[3] => Array
(
[label] => user4
[value] => 1
)
)
이제 막대 차트를 그리는 데 적합한 주파수 데이터 배열이 있습니다. 다음으로, 우리는 인기있는 JavaScript 라이브러리를 사용하여 Bar 차트를 생성 할 수 있습니다. 위의 데이터를 프론트 엔드 JavaScript 코드로 전달 하고이 라이브러리를 사용하여 막대 차트를 그릴 수 있습니다.
예를 들어, Chart.js를 사용하여 다음과 같이 구현할 수 있습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>막대 차트 예제</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<canvas id="barChart"></canvas>
<script>
var ctx = document.getElementById('barChart').getContext('2d');
var barChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['user1', 'user2', 'user3', 'user4'],
datasets: [{
label: '방문 수',
data: [3, 2, 1, 1],
backgroundColor: ['#FF5733', '#33FF57', '#3357FF', '#F0F33F'],
borderColor: ['#FF5733', '#33FF57', '#3357FF', '#F0F33F'],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</body>
</html>
이 HTML 파일은 태그와 데이터가 PHP에 의해 생성 된 주파수 배열에서 나온 막대 차트를 표시합니다.