現在の位置: ホーム> 最新記事一覧> phpのarray_diff()関数を使用して、配列内の一意の要素を見つける方法は?

phpのarray_diff()関数を使用して、配列内の一意の要素を見つける方法は?

M66 2025-06-24

開発プロセス中に、2つ以上の配列を比較する必要がある状況に遭遇し、特に特定の配列を見つけることがよくあります。 PHPは、非常に実用的な組み込み関数-Array_Diff()を提供します。これにより、このタスクを簡単に達成できます。

1。array_diff()とは何ですか?

array_diff()は、配列の違いを比較するためのPHPの関数です。最初の配列にのみ表示され、後続の配列に存在する値を返さない要素を含む配列を返します。

関数プロトタイプ:

 array array_diff(array $array1, array ...$arrays)
  • $ array1は、比較したいメイン配列です。

  • $配列は、メイン配列と比較する1つ以上の配列です。

2。例を使用してください

例1:ユーザーの新しい趣味をご覧ください

ユーザーの元の利益とユーザーが提出した新しい興味を記録し、どのものが新しいものであるかを知りたいとします。

 <?php
$originalInterests = ['音楽', '映画', '旅行'];
$newInterests = ['音楽', '映画', '旅行', '写真', '読む'];

$addedInterests = array_diff($newInterests, $originalInterests);

print_r($addedInterests);
?>

出力:

 Array
(
    [3] => 写真
    [4] => 読む
)

ご覧のとおり、 array_diff()は$ new Interestsにのみ表示される要素を返します。これはユーザーの新しい関心です。

3。URLの例を組み合わせます

ユーザーが提出したURLをフィルタリングし、ユーザーが送信したWebサイトのリストを処理しているときに新しいもののみを残したいとします。

 <?php
$existingUrls = [
    'https://m66.net/article/123',
    'https://m66.net/blog/2024',
];

$submittedUrls = [
    'https://m66.net/article/123',
    'https://m66.net/tools/checker',
    'https://m66.net/blog/2024',
    'https://m66.net/contact',
];

$newUrls = array_diff($submittedUrls, $existingUrls);

print_r($newUrls);
?>

出力:

 Array
(
    [1] => https://m66.net/tools/checker
    [3] => https://m66.net/contact
)

結果は、ユーザーが提出した2つのURLが新しく、元のリストに登場していないことを示しています。

4。注意すべきこと

  • array_diff()は、値によって比較され、 「1」1などの非ストリクトモード(データ型を比較しない)は同じと見なされます。

  • 厳密な比較(つまり、データ型を比較す​​る必要がある)を使用する必要がある場合は、 array_diff_assoc()またはarray_diff_key()を使用できます。

  • 戻り結果は、元の配列にキー名を保持します。キー名が必要ない場合は、 array_values()で再インデックスできます。

 $cleanList = array_values(array_diff($newUrls, $existingUrls));

5。概要

array_diff()は非常に強力なツールであり、データフィルタリング、ログ比較、ユーザーの動作分析、その他のシナリオに適しています。それがどのように機能するかを理解している限り、多くの配列処理ロジックはシンプルで効率的になる可能性があります。

この記事があなたがよりよく理解し、 array_diff()を使用するのに役立つことを願っています!開発で同様の問題に遭遇した場合、この関数を試してみると、多くのコードを節約できます。