現在の位置: ホーム> 最新記事一覧> 一度だけ表示される要素をカウントする方法は?

一度だけ表示される要素をカウントする方法は?

M66 2025-06-07

開発プロセス中に、アレイ内の要素の発生数をカウントする必要性がしばしば遭遇します。今日は、配列に1回しか表示されないPHP統計要素を使用する方法に焦点を当て、簡単な例で実装を実証します。

要件の背景

複数の要素を備えた配列があり、この配列の要素を1回表示しているとします。このようなニーズのために、PHPはそれを達成するための複数の方法を提供します。今日、私たちは効率的で理解しやすい方法を紹介します。

方法1: array_count_valuesarray_filterを使用します

PHPの組み込みarray_count_values関数は、配列内のすべての要素の発生時間をカウントできます。連想配列を返し、キーは配列の要素であり、値は対応する要素の発生時間です。 array_filter関数を組み合わせることにより、1回だけ表示される要素を簡単にフィルタリングできます。

サンプルコード:

 <?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)を使用して、配列内の各要素の発生数をカウントし、たとえばカウントされた連想配列を返します。たとえば、 ['apple' => 2、 'banana' => 2、 'orange' => 1、 'grape' => 1、 'kiwi' => 1]

  3. 次に、1つの発生を持つ要素は、array_filter($ counted、function($ count){return $ count === 1;})を介してフィルタリングされます。

  4. 最後に、 array_keys($ initelements)を使用して、これらの要素のキーを1回しか表示しないようにし、 inprode関数を介して文字列の結果を出力します。

出力結果:

 只出现一次要素: orange, grape, kiwi

方法2: 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を介して$ arrayを繰り返し、 $ counterアレイ内の各要素の発生数を記録します。

  3. 次に、 $カウンターアレイをもう一度繰り返し、1の発生のある要素を除外し、 $ initelementsアレイに保存します。

  4. 最後に、結果は破裂関数を介して出力されます。

出力結果:

 只出现一次要素: orange, grape, kiwi

要約します

どちらの方法でも、配列に1回だけ表示される要素を効果的にカウントできます。最初のメソッドは、内蔵array_count_valuesとphpのarray_filter関数を介して実装され、コードは簡潔で理解しやすいです。 2番目の方法は、アレイを手動でトラバースすることです。これは、パフォーマンス要件が高く、組み込み関数に依存しないシナリオに適しています。

特定のニーズと好みに応じて、配列データを処理するのに適した方法を選択できます。この記事があなたを助けることを願っています!