【PHP】配列を比較・削除できる関数|array_diff() ・array_intersect()など

今回はPHPで個人的によく利用する、配列の要素を比較し削除する関数のまとめとなります。

配列を比較し差分を返す関数|要素を削除する例

array_diff ・array_diff_assoc関数は、引数に複数の配列を指定し、第1引数と、第2引数以降に指定した配列を比較します。

そして、第1引数の配列にある要素と、第2引数以降の配列にある要素が同じ場合、第1引数の配列から、それら同じ要素を削除した配列が戻り値となります。

値を比較し差分を返す|array_diff 

array_diff関数では、配列の値を比較し差分の配列を返します。以下、例となります。

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

出力結果

以下が出力結果となり、配列$array1から、配列$array2と同じ値を削除した配列となります。

Array (
	[1] => blue
)

キーと値のセットを比較し差分を返す|array_diff_assoc

array_diff_assoc関数では、配列のキーと値のセットを比較し差分の配列を返します。以下、例となります。

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);

print_r($result);
?>

出力結果

以下が出力結果となり、配列$array1から、配列$array2と同じキーと値のセットを削除した配列となります。

また、配列$array2にも配列$array1と同じredの値がありますが、キーが異なるため削除されません。

Array ( 
	[b] => brown 
    [c] => blue 
    [0] => red
)

配列を比較し共通項を返す関数|要素を削除する例

array_intersect・array_intersect_assoc関数は、引数に複数の配列を指定し、第1引数と、第2引数以降に指定した配列を比較します。

そして、第1引数の配列にある要素と、第2引数以降の配列にある要素が同じ場合、第1引数の配列から、それら同じ要素以外を削除した配列が戻り値となります。

値を比較し共通項を返す|array_intersect

array_intersect関数では、配列の値を比較し共通項の配列を返します。以下、例となります。

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);

print_r($result);
?>

出力結果

以下が出力結果となり、配列$array1から、配列$array2と同じ値以外を削除した配列となります。

Array (
	[a] => green 
    [0] => red 
    [2] => red
)

キーと値のセットを比較し共通項を返す|array_intersect_assoc

array_intersect_assoc関数では、配列のキーと値のセットを比較し共通項の配列を返します。以下、例となります。

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_intersect_assoc($array1, $array2);

print_r($result);
?>

出力結果

以下が出力結果となり、配列$array1から、配列$array2と同じキーと値のセット以外を削除した配列となります。

また、配列$array2にも配列$array1と同じredの値がありますが、キーが異なるため削除されます。

Array ( 
	[a] => green 
)

その他の関数|配列を比較し削除

PHPで配列の要素を比較し削除できる関数は、他にもあります。詳しくは以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。