php 配列と配列を比較して同じ値のみを抽出する

phpで、array_intersectを使用して、配列と配列を比較して同じ値のみを抽出するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
array_intersect使い方
array_intersectを使用すれば、配列と配列を比較して同じ値のみを抽出することが可能です。
1 |
array_intersect(配列,配列,...); |
以下は、2つの配列を比較して同じ値のみを抽出して表示するサンプルコードとなります。
1 2 3 4 5 6 7 8 9 |
<?php $arr1 = ["aaa", "bbb", "ccc"]; $arr2 = ["aaa", "ccc"]; $result = array_intersect($arr1,$arr2); print_r($result); |
実行結果
1 2 3 4 5 |
Array ( [0] => aaa [2] => ccc ) |
3つ以上も可能です。
1 2 3 4 5 6 7 8 9 10 |
<?php $arr1 = ["aaa", "bbb", "ccc", "ddd", "eee"]; $arr2 = ["aaa", "ccc"]; $arr3 = ["aaa"]; $result = array_intersect($arr1,$arr2,$arr3); print_r($result); |
実行結果
1 2 3 4 |
Array ( [0] => aaa ) |
文字列として比較しているので、数値の「1」と文字列の「1」は同じと見なされます。
1 2 3 4 5 6 7 8 9 |
<?php $arr1 = [1, 2, 3, 4, 5]; $arr2 = ["1", "2"]; $result = array_intersect($arr1,$arr2); print_r($result); |
実行結果
1 2 3 4 5 |
Array ( [0] => 1 [1] => 2 ) |
連想配列の場合は、キーではなく値が同じであるかで判定されます。
1 2 3 4 5 6 7 8 9 |
<?php $arr1 = ["aaa" => 1, "bbb" => 2, "ccc" => 3]; $arr2 = ["aaa" => 2, "eee" => 3]; $result = array_intersect($arr1,$arr2); print_r($result); |
実行結果
1 2 3 4 5 |
Array ( [bbb] => 2 [ccc] => 3 ) |
-
前の記事
javascript 正規表現で「令和○○年○○月○○日」形式の日付を「年」と「月」と「日」に分割する 2021.01.29
-
次の記事
python フォルダを作成する 2021.01.29
コメントを書く