ホームページ  >  記事  >  バックエンド開発  >  PHPで配列の重複値をクエリする方法

PHPで配列の重複値をクエリする方法

PHPz
PHPzオリジナル
2023-04-27 16:38:281409ブラウズ

PHP では、リスト内のいくつかの要素を保存する必要がある場合、最も自然な考え方は配列を使用することです。配列は、多数の要素を簡単に格納でき、さまざまな強力な操作をサポートします。ただし、配列に重複した要素が含まれている場合、これらの重複した値を見つけるために追加の操作が必要になる場合があります。この記事では、PHP で配列の重複値をクエリする方法を説明します。

1. array_count_values 関数を使用する

PHP の array_count_values 関数は、配列内の各値の出現をカウントし、キーが元の値である新しい配列を返すことができます。配列であり、値は元の配列内でこの値が出現する回数です。したがって、この関数を使用して重複する値を見つけることができます。簡単な例を次に示します:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($counts as $value => $count) {
    if ($count > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

出力結果:

Array
(
    [0] => 1
    [1] => 2
)

上記の例では、最初に、繰り返しの値を含む配列 $numbers を定義します。次に、array_count_values 関数を呼び出して、各値の出現数をカウントしました。出力は 2 つのキーと値のペアを含む配列です。ここで、キーは値、値はその値の出現回数です。

次に、foreach ループを使用して配列を反復処理し、各値の出現数が 1 より大きいかどうかを確認します。存在する場合、値は別の配列 $repeats に追加されます。最後に、print_r 関数を使用して $repeats 配列を画面に出力し、繰り返される値を表示します。

2. array_unique 関数と counting 関数を使用する

配列内の重複値を見つける別の方法は、array_unique 関数と counting 関数を使用することです。 array_unique 関数は重複排除された配列を返し、counting 関数は配列内に各値が出現する回数をカウントします。したがって、これら 2 つの関数を使用して重複値を見つけることができます。以下は例です:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$unique = array_unique($numbers);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($unique as $value) {
    if ($counts[$value] > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

出力結果は前の例と同じです:

Array
(
    [0] => 1
    [1] => 2
)

上の例では、最初に array_unique 関数を使用して重複した値を削除します。 $numbers 配列に入力し、重複した値を含まない新しい配列 $unique を取得します。次に、array_count_values 関数を使用して、元の配列内の各値の出現数をカウントします。

次に、foreach ループを使用して $unique 配列をループし、count 関数を使用して、元の配列に値が出現する回数が 1 より大きいかどうかを確認します。そうである場合、値は新しい配列 $repeats に追加され、最後に $repeats 配列が画面に出力されて繰り返される値が表示されます。

3. array_keys 関数を使用する

配列内の重複値を検索するもう 1 つの方法は、array_keys 関数を使用することです。この関数は、指定された値を持つすべてのキーを含む配列を返します。したがって、この関数を使用して重複値を検索すると、結果の配列の長さは重複値の数になります。以下は例です:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$repeats = array();
foreach (array_unique($numbers) as $value) {
    $keys = array_keys($numbers, $value);
    if (count($keys) > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

出力結果も同じです:

Array
(
    [0] => 1
    [1] => 2
)

上記の例では、まず array_unique 関数を使用して、$ 内の重複する値を削除します。数値配列を取得し、重複する値を含む一意の新しい配列を取得します。次に、foreach ループを使用して配列をループし、array_keys 関数を使用して、その値を含む元の配列内のすべてのキーを検索します。見つかったキーの数が 1 より大きい場合、値は新しい配列 $repeats に追加されます。最後に、$repeats 配列を画面に出力して、繰り返される値を表示します。

概要

上記は、PHP 配列内の重複値をクエリするための 3 つの方法です。各メソッドの実行方法は若干異なりますが、重複値の検索にはすべてのメソッドが効果的です。これらの方法を学ぶことで、PHP での配列操作のテクニックをよりよく習得し、プロジェクト内の配列内の重複要素をより簡単に処理できるようになります。

以上がPHPで配列の重複値をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。