ホームページ > バックエンド開発 > PHPの問題 > PHPで配列内の異なる値を見つける方法

PHPで配列内の異なる値を見つける方法

PHPz
リリース: 2023-04-25 09:37:06
オリジナル
691 人が閲覧しました

PHP プログラミングでは、配列を扱う必要があることがよくあります。配列の処理中に、配列内で異なる値を検索する必要がある場合があります (つまり、重複する値はありません)。以下では、PHP 配列内のさまざまな値を見つけるのに役立ついくつかの方法を紹介します。

方法 1: array_unique 関数を使用する

array_unique() 関数は、重複した値が削除された配列を返します。この関数は、配列のキーを保持したまま、重複する値を削除します。以下は、array_unique() 関数の使用例です。

    $arr = array(1, 2, 3, 4, 3, 5, 4, 6);
    $unique_arr = array_unique($arr);
    print_r($unique_arr);
ログイン後にコピー

出力:

    Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 4
        [5] => 5
        [7] => 6
    )
ログイン後にコピー

この例では、array_unique() 関数を使用して、 $arr 配列を取得し、新しい配列 $unique_arr を取得します。

ただし、この方法には欠点があります。つまり、配列内で異なる値しか見つけることができないということです。複数の配列内の異なる値を調べる必要がある場合は、追加のコードを記述する必要があります。

方法 2: array_diff 関数を使用する

array_diff() 関数は、配列の差分セットを計算するために使用されます。 $arr1 配列のすべての要素を含む配列を返しますが、$arr2、$arr3 などの配列には含まれません。以下は、array_diff() 関数の使用例です。

    $arr1 = array(1, 2, 3, 4, 5);
    $arr2 = array(3, 4, 5, 6, 7);
    $diff_arr = array_diff($arr1, $arr2);
    print_r($diff_arr);
ログイン後にコピー

出力:

    Array
    (
        [0] => 1
        [1] => 2
    )
ログイン後にコピー
ログイン後にコピー

この例では、array_diff() 関数を使用して、$arr1 と $ の違いを比較します。 arr2 配列: 新しい配列 $diff_arr が取得されます。これには、$arr1 配列の要素が含まれますが、$arr2 配列の要素は含まれません。

array_diff() 関数のパラメータとして複数の配列を使用できます。例:

    $arr1 = array(1, 2, 3, 4, 5);
    $arr2 = array(3, 4, 5, 6, 7);
    $arr3 = array(5, 6, 7, 8, 9);
    $diff_arr = array_diff($arr1, $arr2, $arr3);
    print_r($diff_arr);
ログイン後にコピー

出力:

    Array
    (
        [0] => 1
        [1] => 2
    )
ログイン後にコピー
ログイン後にコピー

この例では、$arr1 と $arr2 を比較します。 、$arr3 配列の差分セットを使用すると、新しい配列 $diff_arr が取得されます。これには、$arr1 配列の要素が含まれますが、$arr2 配列と $arr3 配列の要素は含まれません。

方法 3: ループ検索を使用する

PHP の foreach ループは、非常に実用的なループ メソッドです。 foreach ループと if 条件文を使用して、配列内の異なる値を見つけることができます。以下は、foreach ループと if ステートメントの使用例です。

    $arr = array(1, 2, 3, 4, 3, 5, 4, 6);
    $result_arr = array();    // 新建一个空数组
    foreach ($arr as $value)
    {
        $count = 0;           // 新建一个变量来计数
        foreach ($arr as $sub_value)
        {
            if ($value == $sub_value)
            {
                $count++;
            }
        }
        if ($count == 1)      // 如果计数为1,说明是不同的值
        {
            $result_arr[] = $value;
        }
    }
    print_r($result_arr);
ログイン後にコピー

出力:

    Array
    (
        [0] => 1
        [1] => 2
        [2] => 5
        [3] => 6
    )
ログイン後にコピー
ログイン後にコピー

この例では、さまざまな値を格納するために新しい空の配列 $result_arr を作成します。 foreach ループを使用して $arr 配列を反復し、別の foreach ループを使用して配列内の要素の出現数をカウントし、出現数が 1 の場合は、その要素を $result_arr 配列に追加します。

この方法の欠点は、配列が大きくなると効率が低くなる可能性があることです。

方法 4: array_count_values 関数を使用する

array_count_values() 関数は、配列内のすべての値の出現数をカウントするために使用されます。これは、キーが $arr 配列内の値であり、その値が $arr 配列内にその値が出現する回数である配列を返します。以下は、array_count_values() 関数の使用例です。

    $arr = array(1, 2, 3, 4, 3, 5, 4, 6);
    $count_arr = array_count_values($arr);
    $result_arr = array();
    foreach ($count_arr as $key => $value)
    {
        if ($value == 1)
        {
            $result_arr[] = $key;
        }
    }
    print_r($result_arr);
ログイン後にコピー

出力:

    Array
    (
        [0] => 1
        [1] => 2
        [2] => 5
        [3] => 6
    )
ログイン後にコピー
ログイン後にコピー

この例では、array_count_values() 関数を使用して、次の各要素の出現数をカウントします。 $arr 配列を取得し、foreach ループを使用して結果配列を走査し、出現回数が 1 である要素を見つけて、それを $result_arr 配列に追加します。

この方法の利点はコードが簡潔であることですが、欠点はより多くのメモリを消費する可能性があることです。

結論

上記では、PHP で配列内の異なる値を見つける 4 つの方法を紹介しました。実際の開発では、実情に応じて最適な方法を選択する必要があります。配列が小さい場合は、方法 3 または 4 を使用できます。複数の配列で異なる値を見つける必要がある場合は、方法 2 を使用できます。1 つの配列で異なる値のみを見つける必要がある場合は、方法 2 を使用できます。方法1。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート