【PHP】配列・連想配列を比較・削除できる関数|array_diff() ・array_intersect()など
今回はPHPで個人的によく利用する、配列・連想配列の要素を比較し削除する関数のまとめとなります。
配列・連想配列を比較し差分を返す関数|要素を削除する例
array_diff ・array_diff_assoc関数は、第1引数と第2引数以降に指定した配列を比較し、差分の配列を返します。
値を比較し差分を返す|array_diff
array_diff関数では、配列の値を比較し差分の配列を返します。以下、例となります。
$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関数では、配列のキーと値のセットを比較し差分の配列を返します。以下、例となります。
$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引数以降に指定した配列を比較し、共通項の配列を返します。
値を比較し共通項を返す|array_intersect
array_intersect関数では、配列の値を比較し共通項の配列を返します。以下、例となります。
$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関数では、配列のキーと値のセットを比較し共通項の配列を返します。以下、例となります。
$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で配列の要素を比較し削除できる関数は、他にもあります。詳しくは以下のリンク先を参考にしてみてください。