php array_diffで配列同士の値を差分を取得する
phpで、array_diffを使用して、配列同士の値を差分を取得するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
array_diff使い方
array_diffを使用すれば、配列同士の値を差分を取得することが可能です。
array_combine(配列, 配列, ... )
以下は、配列同士の値を差分を取得するサンプルコードとなります。
<?php
$arr1 = ["aaa", "bbb", "ccc", "ddd", "eee"];
$arr2 = ["aaa", "ccc", "eee"];
$result = array_diff($arr1,$arr2);
print_r($result);
実行結果
Array
(
[1] => bbb
[3] => ddd
)
複数の配列同士でも可能です。
<?php
$arr1 = ["aaa", "bbb", "ccc", "ddd", "eee", "fff"];
$arr2 = ["aaa", "ccc"];
$arr3 = ["aaa", "eee"];
$arr4 = ["ddd"];
$result = array_diff($arr1,$arr2,$arr3,$arr4);
print_r($result);
実行結果
Array
(
[1] => bbb
[5] => fff
)
また、文字列にキャストされて比較していため、数値「1」と文字列の「”1″」は同じものとして判定されます。
<?php
$arr1 = ["1", "2", "3", "4", "5"];
$arr2 = [1, 2.0, 3.1];
$result = array_diff($arr1, $arr2);
print_r($result);
実行結果
Array
(
[2] => 3
[3] => 4
[4] => 5
)
後の配列の方が大きい場合や、順番が異なっていても差分は取得されます。
<?php
$arr1 = ["aaa", "ccc", "ggg"];
$arr2 = ["bbb", "ccc", "aaa", "eee", "fff"];
$result = array_diff($arr1, $arr2);
print_r($result);
実行結果
Array
(
[2] => ggg
)
-
前の記事
javascript クリックイベントで親要素のクリックイベントは実行させないようにする 2021.10.11
-
次の記事
jquery 指定した要素以外を取得する 2021.10.11
コメントを書く