現在の位置: ホーム> 最新記事一覧> array_diff_key()を使用して、「減算」操作を実装します

array_diff_key()を使用して、「減算」操作を実装します

M66 2025-06-06

PHPでは、 array_diff_key()関数は非常に便利な配列関数であり、指定されたキー値ペアを配列から削除できるようにします。この関数は、最初の配列にキー価値ペアを含むが2番目の配列ではない2つの配列のキーを比較することにより、配列を返します。

関数プロトタイプ

array_diff_key(array $array1, array $array2, array ...$arrays): array

パラメーター説明

  • $ array1 :「減算」操作を実行する配列。

  • $ array2 :除外する必要がある配列は、$ array2と同じキーを持つ$ array1の要素を削除します。

  • ... $配列:複数の配列を渡すことができ、複数の配列のキーをさらに除外できます。

返品値

この関数は、 $ array1の要素を含む新しいアレイを返します。キーは$ array2または他のアレイに存在しません。

例:不要なキー価値ペアを削除します

不要なキー価値ペアを削除する次の配列があるとします。

 $array1 = [
    'name' => 'John',
    'age' => 25,
    'city' => 'New York',
    'country' => 'USA'
];

$array2 = [
    'age' => 0,
    'city' => ''
];

// 使用 array_diff_key 配列を削除します $array1 社内 'age' そして 'city' キー価値のペア
$result = array_diff_key($array1, $array2);

print_r($result);

出力:

 Array
(
    [name] => John
    [country] => USA
)

この例では、 array_diff_key()関数を介して$ array1から「年齢」「都市」キーを削除します。この関数は、 $ array1$ array2のキーを比較し、 $ array2にない$ array1のキーのみを比較します。

複数の配列の比較

array_diff_key()関数は、パラメーターとして複数の配列もサポートします。以下は、複数の配列を使用してキー価値ペアを削除する方法を示す例です。

 $array1 = [
    'name' => 'Alice',
    'age' => 30,
    'gender' => 'female',
    'email' => 'alice@m66.net'
];

$array2 = [
    'age' => 0,
    'gender' => ''
];

$array3 = [
    'email' => ''
];

// 使用 array_diff_key 去除多个数组社内键
$result = array_diff_key($array1, $array2, $array3);

print_r($result);

出力:

 Array
(
    [name] => Alice
)

この例では、 $ array1から「年齢」「性別」「電子メール」キーを同時に削除します。関数は、$ array1のキーが$ array2$ array3であるかどうかをチェックします。もしそうなら、キー値ペアが削除されます。

注意すべきこと

  1. 配列キーの一貫性を保持array_diff_key()は、値に関係なく、配列のキーのみを比較します。値を比較する必要がある場合は、 array_diff()またはarray_diff_assoc()を使用できます。

  2. 空の配列処理:合格した配列が空の場合は、比較できる要素がないため、元の配列に戻ります。

  3. 多次元配列array_diff_key()関数は、配列の最初のレイヤーキーのみを比較します。配列が多次元配列の場合、 array_diff_key()をレイヤーごとに適用する必要があります。

結論

array_diff_key()関数を介して、PHPは、アレイを「減算」するための簡潔で効率的な方法を提供し、不要なキー価値ペアを削除します。この関数を使用して、配列の細粒制御を使用し、不要な要素を削除し、コードをより簡潔で保守可能にすることができます。