ホームページ >バックエンド開発 >PHPの問題 >PHPで配列内の同一の値を削除する方法

PHPで配列内の同一の値を削除する方法

PHPz
PHPzオリジナル
2023-04-18 15:22:28481ブラウズ

PHP は人気のあるプログラミング言語であり、その強力な配列処理機能が高く評価されている重要な理由の 1 つです。 PHP プログラミングでは、配列操作を実行する必要がよくありますが、一般的な操作の 1 つは、配列内の特定の値を削除することです。この記事では、PHPで配列内の同一の値を削除する方法を説明します。

PHP では、unset() 関数を使用して、配列内の特定のキーと値のペアを削除できます。ただし、配列内の同じ値を持つ複数の要素を削除する必要がある場合、この方法は少し面倒になります。配列内の重複要素をより簡単に削除するために、PHP には組み込み関数 array_unique() が用意されています。

array_unique() 関数は、元の配列で繰り返されていない値のみを含む新しい配列を返します。この関数は、次のコードで使用できます。

<?php
    $arr = array("PHP", "Java", "Python", "PHP", "C++", "Ruby", "C#");
    $new_arr = array_unique($arr);
    print_r($new_arr);
?>

上記のコードの出力は次のとおりです。

Array
(
    [0] => PHP
    [1] => Java
    [2] => Python
    [4] => C++
    [5] => Ruby
    [6] => C#
)

ご覧のとおり、元の配列内の重複要素が正常に削除されました。

ただし、上記のコードは、array_unique() 関数を使用して重複した値を削除する方法のみを示しています。元の配列内の重複した要素を直接削除する必要がある場合はどうすればよいでしょうか?このとき、array_unique() 関数と array_diff() 関数を組み合わせて、元の配列内の重複した要素を削除できます。

array_diff() 関数は、2 つの配列の差を返します。つまり、配列 1 には存在するが配列 2 には存在しない値を返します。この違いを利用して、元の配列内の重複要素を計算し、元の配列からそれらを削除できます。具体的なアイデアは、次のコードを通じて実現できます。

<?php
    $arr = array("PHP", "Java", "Python", "PHP", "C++", "Ruby", "C#");
    $unique_arr = array_unique($arr); //去重
    $duplicate_arr = array_diff_assoc($arr, $unique_arr); //计算重复元素
    foreach($duplicate_arr as $key => $val){ //遍历重复元素
        while(($index = array_search($val, $arr)) !== false){ //在原数组中依次查找元素位置
            unset($arr[$index]); //删除元素
        }
    }
    print_r($arr);
?>

上記のコードの実行結果は次のとおりです。

Array
(
    [1] => Java
    [2] => Python
    [4] => C++
    [5] => Ruby
    [6] => C#
)

ご覧のとおり、元の配列内の重複要素が正常に削除され、新しい配列を取得しました。

まとめると、配列内の同じ値を削除する方法は、array_unique()関数とarray_diff()関数を組み合わせることで実現できます。このうち、array_unique() 関数は重複値の削除に使用され、array_diff() 関数は重複要素の計算に使用されます。上記の方法により、PHP プログラミングで配列演算をより便利に実行できるようになります。

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

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