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