Help us understand the problem. What is going on with this article?

phpの配列同士の重複をチェックする

More than 1 year has passed since last update.

なかなかググり力不足で一発でぐぐれないのでこちらに書きます。

「php 配列 重複 チェック」で検索したときに出やすいです。

このケースでは、関数を使わないとこんな感じでforeachを使うことになると思います。

example1
$array1 = [1 ,2 ,3];

$array2 = [2, 4];

$result = []:
foreach ($array1 as $a1) {
    foreach ($array2 as $a2) {
        if ($a1 === $a2) {
            $result[] = $a;
        }
    }
}

var_dump($result);

「array_intersect」を使うとスッキリ書けます。

example2
$array1 = [1 ,2 ,3];

$array2 = [2, 4];

var_dump(array_intersect($array1, $array2));

array(1) {
  [1]=>
  int(2)
}

この関数と逆の結果になるものとしてarray_diffがあります。
こちらは、重複していない、異なるものをチェックして配列で返してくれます。
どちらも便利でよいです。

php.net
array_intersect

php.net
array_diff

yoshinyan
Webアプリケーションエンジニア。 PHP/Laravel/JavaScript/Vue.js/Ruby/Rails
https://yoshinyan99.hatenablog.com/
yyphp
PHPerが毎週集まり、ざっくばらんに情報交換する雑談コミュニティ
https://yyphp.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away