現在の位置: ホーム> 最新記事一覧> array_intersect_keyとarray_diff_keyの違いは何ですか? 1つの記事の2つの違いを理解してください

array_intersect_keyとarray_diff_keyの違いは何ですか? 1つの記事の2つの違いを理解してください

gitbox 2025-06-09

PHPでは、 array_intersect_keyarray_diff_keyは、配列のキー名を比較するために使用される配列処理関数ですが、動作と目的は異なります。この記事では、それらの違いについて詳細に説明し、実用的な例を使用して、これら2つの機能の使用シナリオをよりよく理解するのに役立ちます。

1。array_intersect_key関数の紹介

array_intersect_key関数は、すべての配列の複数の配列のキー名と対応する値を返すために使用されます。つまり、キー名が複数の配列に存在するすべての要素を含む新しい配列を返します。

関数プロトタイプ

array array_intersect_key(array $array1, array $array2, array ...$arrays)
  • $ array1 :比較する最初の配列。

  • $ array2 :比較する2番目の配列。

  • $配列:比較のために複数の配列を選択できます。

サンプルコード

<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];

$result = array_intersect_key($array1, $array2);
print_r($result);
?>

出力結果

Array
(
    [b] => 2
    [c] => 3
)

この例では、 array_intersect_keyは$ array1$ array2の両方に存在するキー名bcに対応する値を返します。したがって、返された結果には、これら2つのキー名の値が含まれています。

2。array_diff_key関数の紹介

array_diff_key関数は、他の配列ではなく、最初の配列に含まれる配列を返します。その目的は、他の配列にも存在する最初の配列からキーを削除することです。

関数プロトタイプ

array array_diff_key(array $array1, array $array2, array ...$arrays)
  • $ array1 :他の配列と比較される最初の配列。

  • $ array2 :比較する2番目の配列。

  • $配列:比較のために複数の配列を選択できます。

サンプルコード

<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];

$result = array_diff_key($array1, $array2);
print_r($result);
?>

出力結果

Array
(
    [a] => 1
)

この例では、 array_diff_keyは$ array2に存在しないため、キーが$ array1aという名前の要素を返します。

3。主な違い

array_intersect_keyarray_diff_keyの主な違いは次のとおりです。

  • array_intersect_keyすべての配列に存在するキー値ペアを返します。

  • array_diff_key最初の配列に存在するが、他の配列にはないキー値ペアを返します。

例えば

3つの配列があるとします。

 $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$array3 = ['c' => 7, 'd' => 8];
  • array_intersect_key($ array1、$ array2、$ array3)['c' => 3]を返します。これは、すべてのアレイに存在するキーであるためです。

  • array_diff_key($ array1、$ array2、$ array3)[ ' a' => 1、 'b' => 2]返します

4。概要

  • array_intersect_keyは、複数の配列に存在するキーを見つけ、これらのキーと対応する値を返すために使用されます。

  • array_diff_keyは、最初の配列ではなく、後続の配列ではなく、これらのキーとそれらの対応する値を返すキーを見つけるために使用されます。

これらの2つの機能は、特にキー名に基づいた比較とフィルタリングが必要なシナリオで、配列操作に非常に役立ちます。それらの違いを理解することで、PHPアレイをより効率的に処理できます。