PHPのarray_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得

PHPのarray_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得してみます。

array_intersect_assoc()関数は、2つ、もしくは2つ以上の配列のキーと値のペアを比較し、一致したものを取得することができます。

2つ以上の配列の値を比較する場合は、例えばaという配列のキーと値のペアを比較し、bとcなどの配列内にも共通して存在するキーと値のペアを返します。

■基本的な構文

array_intersect_assoc(array1,array2,array3, ...)

array1は、 他と比較するための配列を指定します。

array2,array3,…は、array1(最初の配列)と比較する配列を指定します。

■環境

・Windows10

・XAMPP 8.0.6

・PHP Version 8.0.6

■PHPのarray_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得

では、PHPのarray_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得するスクリプトを書いていきます。

■コード

<html lang="ja"> 
<head> 
<title>array_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得</title>
</head>
<body>
<?php
$a = array("a"=>"pineapple","b"=>"blueberry","c"=>"dragonfruit","d"=>"strawberry");
$b = array("a"=>"pineapple","b"=>"blueberry","c"=>"dragonfruit");
$result = array_intersect($a,$b);
print_r($result);
?>
</body>
</html>

今回はaという変数を定義し、その中でarray()関数を使用し、キーと値のペアを格納します。これで配列が作成されます。

次に、bという変数を定義し、同じように、その中でarray()関数を使用し、キーと値のペアを格納し、配列を作成します。

作成後、resultという変数を定義し、その中でarray_intersect_assoc()関数を使用します。array_intersect_assoc()関数の括弧内には、第1の引数,パラメーターとして、他と比較するためa変数を渡します。第2の引数,パラメーターとして、最初の配列と比較するb変数を渡します。渡された情報を元に、配列内のキーと値のペアを比較し一致するものが返されます。

返されたものをprint_r()関数で出力します。

■実行

では、このスクリプトを「compare_key_val_get_match.php」という名前で保存し、実行させてみます。

実行させてみると、array_intersect_assoc()関数を使用したことで、a変数とb変数内の配列のキーと値のペアが比較され、キーと値のペアが完全に一致するものだけを取得し、print_r()関数で出力させることができました。一致しないものは取得されず、print_r()関数で出力させた際も、出力されない。

■日本語の場合

出力後、2つ以上の配列のキーと値が日本語の場合はどうなるのでしょうか。やってみます。

■コード(compare_key_val_get_match_2.php)

<html lang="ja"> 
<head> 
<title>array_intersect_assoc()関数を使用し2つ以上の配列のキーと値を比較し一致を取得</title>
</head>
<body>
<?php
$a = array("あ"=>"暗黒","伊"=>"伊太利亜","う"=>"美味い","江"=>"江ノ島");
$b = array("あ"=>"暗黒","伊"=>"伊太利亜","う"=>"美味い");
$result = array_intersect($a,$b);
print_r($result);
?>
</html>

■実行

このスクリプトを「compare_key_val_get_match_2.php」という名前で保存し実行してみると、日本語であっても、array_intersect_assoc()関数を使用したことで、他と比較するための配列が格納されているa変数と、最初の配列(a変数)と比較する配列が格納されているb変数内のキーと値のペアが比較され、一致しているものが取得され、print_r()関数で出力されました。

コメント

タイトルとURLをコピーしました