현재 위치: > 최신 기사 목록> 한 번만 나타나는 요소를 계산하는 방법?

한 번만 나타나는 요소를 계산하는 방법?

M66 2025-06-07

개발 과정에서 우리는 종종 배열에서 요소의 발생 수를 계산해야 할 필요성을 종종 만난다. 오늘날 우리는 배열에 한 번만 나타나는 PHP 통계 요소를 사용하는 방법에 중점을두고 간단한 예제로 구현을 시연 할 것입니다.

요구 사항 배경

여러 요소가있는 배열이 있다고 가정 하고이 배열의 요소를 1 회 표시하고 싶습니다. 이러한 요구에 대해 PHP는이를 달성하는 여러 가지 방법을 제공하며 오늘날 우리는 효율적이고 이해하기 쉬운 방법을 소개 할 것입니다.

방법 1 : Array_Count_Values ​​및 Array_Filter를 사용하십시오

PHP의 내장 Array_Count_Values ​​함수는 배열에서 모든 요소의 발생 시간을 계산할 수 있습니다. 연관 배열을 반환하고 키는 배열의 요소이며 값은 해당 요소의 발생 시간입니다. Array_Filter 기능을 결합하여 한 번만 나타나는 요소를 쉽게 필터링 할 수 있습니다.

샘플 코드 :

 <?php
// 배열을 정의하십시오
$array = ['apple', 'banana', 'orange', 'apple', 'banana', 'grape', 'kiwi'];

// 사용 array_count_values 기능 통계 요소 수가 발생합니다
$counted = array_count_values($array);

// 사용 array_filter 필터링 된 발생 수는입니다1강요
$uniqueElements = array_filter($counted, function($count) {
    return $count === 1;
});

// 获取只出现一次강요的键
$uniqueKeys = array_keys($uniqueElements);

// 인쇄 결과
echo "只出现一次강요: " . implode(", ", $uniqueKeys);
?>

코드 구문 분석 :

  1. 여러 요소가 포함 된 배열 $ 배열 을 정의합니다.

  2. Array_Count_Values ​​($ array)를 사용하여 배열에서 각 요소의 발생 수를 계산하고 예를 들어 연관 배열 $를 반환 합니다.

  3. 다음으로, 1 개의 발생이있는 요소는 array_filter ($ counted, function ($ count) {return $ count === 1;})을 통해 필터링됩니다.

  4. 마지막으로, Array_Keys ($ 고유 요소) 를 사용하여 한 번만 나타나는 이러한 요소의 키를 얻고 Implode 함수를 통해 문자열을 출력하십시오.

출력 결과 :

 只出现一次강요: orange, grape, kiwi

방법 2 : Traverse에 직접 Foreach를 사용하십시오

내장 기능을 사용하는 것 외에도 배열을 직접 반복하여 요소가 나타나는 횟수를 계산할 수도 있습니다. 다음은 foreach를 사용하는 방법입니다.

샘플 코드 :

 <?php
// 배열을 정의하십시오
$array = ['apple', 'banana', 'orange', 'apple', 'banana', 'grape', 'kiwi'];

// 카운터 배열을 초기화하십시오
$counter = [];

// 배열을 통해 반복하십시오,각 요소의 발생 수를 계산하십시오
foreach ($array as $item) {
    if (isset($counter[$item])) {
        $counter[$item]++;
    } else {
        $counter[$item] = 1;
    }
}

// 필터링 된 발생 수는입니다1강요
$uniqueElements = [];
foreach ($counter as $key => $count) {
    if ($count === 1) {
        $uniqueElements[] = $key;
    }
}

// 인쇄 결과
echo "只出现一次강요: " . implode(", ", $uniqueElements);
?>

코드 구문 분석 :

  1. 먼저 빈 $ 카운터 배열을 초기화하여 각 요소의 발생 수를 저장합니다.

  2. Foreach를 통해 $ the $ 배열을 반복하고 $ 카운터 배열에 각 요소의 발생 수를 기록하십시오.

  3. 그런 다음 $ 카운터 배열을 다시 반대하고 1의 발생으로 요소를 필터링하고 $ UniqueElements 배열에 저장하십시오.

  4. 마지막으로, 결과는 Implode 함수를 통해 출력됩니다.

출력 결과 :

 只出现一次강요: orange, grape, kiwi

요약

두 방법 모두 배열에서 한 번만 나타나는 요소를 효과적으로 계산할 수 있습니다. 첫 번째 방법은 내장 된 Array_Count_Values ​​및 Array_Filter 기능을 통해 구현되며 코드는 간결하고 이해하기 쉽습니다. 두 번째 방법은 배열을 수동으로 통과하는 것입니다. 배열은 성능 요구 사항이 높거나 내장 기능에 의존하지 않는 일부 시나리오에 적합합니다.

특정 요구와 선호도에 따라 배열 데이터를 처리하는 데 적합한 방법을 선택할 수 있습니다. 이 기사가 도움이되기를 바랍니다!