PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのarray_intersect_key()関数とは?キーで配列を比較する方法を解説

PHPのarray_intersect_key()関数は、複数の配列のキーを相互に比較し、共通するキーを持つ要素を抽出するための関数です。最初の配列に存在する要素のうち、そのキーが他のすべての引数の配列にも存在するものだけを集めた新しい配列を返します。

なお、この関数が比較するのはあくまで「キー」であり、「値」ではない点に注意してください。値まで比較したい場合は、array_intersect()関数を使用します。

構文

array_intersect_key(arr1, arr2, arr3, arr4, …)

パラメータ

  • arr1 − 比較の基準となる配列。必須。

  • arr2 − 比較対象となる配列。必須。

  • arr3 − さらに比較したい配列がある場合に追加します。省略可能。

  • arr4 − さらに比較したい配列がある場合に追加します。省略可能。

戻り値

array_intersect_key()関数は、最初の配列の要素のうち、キーが他のすべての引数の配列にも存在するものだけを含む配列を返します。共通するキーがひとつもない場合は、空の配列が返されます。

使用例

次の例では、2つの連想配列をキーで比較しています。

<?php
   $arr1 = array("p"=>"headphone","q"=>"earpod","r"=>"charger");
   $arr2 = array("p"=>"headphone","q"=>"earpod");
   $res = array_intersect_key($arr1,$arr2);
   print_r($res);
?>

出力結果

Array
(
   [p] => headphone
   [q] => earpod
)

$arr1にはキー「p」「q」「r」が存在しますが、$arr2には「r」がないため、結果から除外されます。値が異なっていてもキーさえ一致していれば要素は残る点がポイントです。

3つ以上の配列を比較する場合

引数はいくつでも追加でき、その場合はすべての配列に存在するキーだけが結果に残ります。

<?php
   $arr1 = array("p"=>"headphone","q"=>"earpod","r"=>"charger");
   $arr2 = array("p"=>"headphone","r"=>"adapter");
   $arr3 = array("r"=>"cable","s"=>"case");
   $res = array_intersect_key($arr1,$arr2,$arr3);
   print_r($res);
?>

出力結果

Array
(
   [r] => charger
)

3つの配列すべてに共通するキーは「r」だけなので、$arr1の「r」=> "charger" のみが返されています。


  1. PHPのarray_intersect_key()関数とは?キーで配列を比較する方法を解説

    PHPのarray_intersect_key()関数は、複数の配列のキーを相互に比較し、共通するキーを持つ要素を抽出するための関数です。最初の配列に存在する要素のうち、そのキーが他のすべての引数の配列にも存在するものだけを集めた新しい配列を返します。 なお、この関数が比較するのはあくまで「キー」であり、「値」ではない点に注意してください。値まで比較したい場合は、array_intersect()関数を使用します。 構文 array_intersect_key(arr1, arr2, arr3, arr4, …) パラメータ arr1 − 比較の基準となる配列。必須。 arr

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に