php 複数の連想配列のキーのみの差分を取得する

  • 作成日 2021.01.20
  • php
php 複数の連想配列のキーのみの差分を取得する

phpで、array_diff_keyを使用して、複数の連想配列のキーのみの差分を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

array_diff_key使い方

array_diff_keyを使用すれば、複数の連想配列のキーのみの差分を取得することが可能です。

array_diff_key(連想配列, 連想配列, ... )

以下は、複数の連想配列のキーのみの差分を取得するサンプルコードとなります。

<?php

$arr1 = ["a" => 1, "b" => 2, "c" => 3, "d" => 4];
$arr2 = ["a" => 1, "b" => 3, "c" => 4];

$result = array_diff_key($arr1, $arr2);

print_r($result);

実行結果

Array
(
    [d] => 4
)

複数の配列同士でも可能です。

<?php

$arr1 = ["a" => 1, "b" => 2, "c" => 3, "d" => 4];
$arr2 = ["a" => 1, "b" => 3];
$arr3 = ["c" => 4];

$result = array_diff_key($arr1, $arr2, $arr3);

print_r($result);

実行結果

Array
(
    [d] => 4
)

また、文字列にキャストされて比較していため、数値「1」と文字列の「”1″」は同じものとして判定されます。

<?php

$arr1 = ["1" => 1, "2" => 2, "c" => 3, "d" => 4];
$arr2 = [1 => 1, 2 => 3];

$result = array_diff_key($arr1, $arr2);

print_r($result);

実行結果

Array
(
    [c] => 3
    [d] => 4
)