PHP 개발에서 우리는 종종 배열에서 요소를 계산해야합니다. 특히 배열이 다차원 배열 일 때 값을 계산하는 방법이 특히 중요합니다. 이 기사에서는 다차원 배열에 대한 값 통계를 지원하는 사용자 정의 PHP 기능을 작성하는 방법을 보여줍니다.
다차원 배열은 하나 이상의 배열을 요소로 포함하는 배열입니다. 예를 들어, 2 차원 배열, 각 요소는 배열입니다. 다차원 배열을 통과함으로써보다 복잡한 데이터 통계를 수행 할 수 있습니다.
예를 들어, 다음과 같이 다차원 배열이 있다고 가정합니다.
$array = [
['name' => 'John', 'age' => 28, 'city' => 'New York'],
['name' => 'Jane', 'age' => 22, 'city' => 'Los Angeles'],
['name' => 'Mike', 'age' => 28, 'city' => 'Chicago'],
['name' => 'Lucy', 'age' => 22, 'city' => 'New York']
];
우리의 목표는 전체 다차원 배열에 나타나는 각 값의 횟수를 계산할 수있는 함수를 작성하는 것입니다. 다차원 배열을 재귀 적으로 처리하여 각 요소의 발생 빈도를 계산할 수 있습니다.
이 기능을 구현하는 PHP 기능은 다음과 같습니다.
function countValuesInArray($array) {
$counts = [];
// 다차원 배열을 통해 반복하십시오
foreach ($array as $element) {
// 요소가 배열 인 경우,그런 다음 재귀 적으로 전화하십시오
if (is_array($element)) {
$counts = array_merge($counts, countValuesInArray($element));
} else {
// 요소가 값인 경우,그런 다음 발생 횟수를 계산하십시오
if (isset($counts[$element])) {
$counts[$element]++;
} else {
$counts[$element] = 1;
}
}
}
return $counts;
}
// 테스트 배열
$array = [
['name' => 'John', 'age' => 28, 'city' => 'New York'],
['name' => 'Jane', 'age' => 22, 'city' => 'Los Angeles'],
['name' => 'Mike', 'age' => 28, 'city' => 'Chicago'],
['name' => 'Lucy', 'age' => 22, 'city' => 'New York']
];
// 호출 기능
$result = countValuesInArray($array);
// 출력 결과
echo '<pre>';
print_r($result);
echo '</pre>';
재귀 횡단
CountValuesinArray 함수는 재귀를 통해 다차원 배열을 처리합니다. 배열 자체의 요소가 배열 인 경우, 함수는 서브 어레이가 가장 안쪽 값에 도달 할 때까지 서브 어레이를 처리하기 위해 다시 호출합니다.
통계 요소 주파수 <br> 각 요소에 대해 함수는 이미 $ count array에 있는지 확인합니다. 이미 존재한다면 그 값은 1 씩 증가합니다. 존재하지 않으면 1로 초기화됩니다.
병합 결과 <br> 재귀 적으로 전화 할 때마다 Array_merge를 통해 통계 결과를 병합하여 마지막으로 완전한 통계 배열을 형성합니다.
위의 코드를 실행한다고 가정하면 출력이 다음과 같습니다.
Array
(
[John] => 1
[28] => 2
[New York] => 2
[Jane] => 1
[22] => 2
[Los Angeles] => 1
[Mike] => 1
[Chicago] => 1
[Lucy] => 1
)
많은 PHP 응용 프로그램에서 배열 데이터에는 URL이 포함되어있을 수 있으며 때로는 처리해야합니다. 배열의 모든 URL의 도메인 이름을 M66.net 으로 바꾸려면 위의 기능을 약간 수정하고 URL의 도메인 이름을 일반 표현식으로 바꿀 수 있습니다.
다음은 URL 처리가 추가 된 기능의 수정 된 버전입니다.