php 連想配列と連想配列を比較してキーと値が同じものを抽出する
- 作成日 2020.12.26
- php
![php 連想配列と連想配列を比較してキーと値が同じものを抽出する](https://mebee.info/wp-content/uploads/2019/08/php.png)
phpで、array_intersect_assocを使用して、連想配列と連想配列を比較してキーと値が同じものを抽出するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
array_intersect_assoc使い方
array_intersect_assocを使用すれば、連想配列と連想配列を比較してキーと値が同じものを抽出することが可能です。
array_intersect_assoc(配列,配列,...);
以下は、連想配列と連想配列を比較してキーと値が同じものを抽出するサンプルコードとなります。
<?php
$arr1 = ["aaa" => 1, "bbb" => 2, "ccc" => 3];
$arr2 = ["aaa" => 1, "bbb" => 5, "ccc" => 3];
$result = array_intersect_assoc($arr1,$arr2);
print_r($result);
実行結果
Array
(
[aaa] => 1
[ccc] => 3
)
3つ以上も可能です。
<?php
$arr1 = ["aaa" => 1, "bbb" => 2, "ccc" => 3];
$arr2 = ["aaa" => 1, "bbb" => 5, "ccc" => 3];
$arr3 = ["aaa" => 1];
$result = array_intersect_assoc($arr1,$arr2,$arr3);
print_r($result);
実行結果
Array
(
[aaa] => 1
)
文字列として比較しているので、数値の「1」と文字列の「1」は同じと見なされます。
<?php
$arr1 = ["1" => 1, "bbb" => 2];
$arr2 = [1 => 1, "bbb" => 5];
$result = array_intersect_assoc($arr1,$arr2);
print_r($result);
実行結果
Array
(
[1] => 1
)
連想配列の場合は、キーではなく値が同じであるかで判定されます。
<?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
)
-
前の記事
rails6 Fakerを使ってダミーデータを作成する 2020.12.26
-
次の記事
PostgreSQL プライマリキーを削除する 2020.12.26
コメントを書く