PHP

PHP 配列同士を比較して存在しないものだけ取得する方法 / array_diff() array_diff_key()

PHPの「配列同士を比較して存在しないものだけ取得する方法」についてざっくり解説します。
詳細はPHPマニュアルを確認してください。
array_diff() / array_diff_key()

サンプルコード上に出てくるvar_dumpの使い方はこちらの記事を参考にしてください!

【PHP初学者向け】var_dump()ってなに? あけお スクールに多額のお金を支払う前に、僕の記事で学習してみてね!! こんな人に読んでほしい 「var_dump(...

1. array_diff() / array_diff_key()

書き方

array_diff(①, ②)
array_diff_key(①, ②)

  1. 比較元の配列
  2. 比較対象配列

2. 配列の値(中身)で比較する

array_diff

<?php

$sports1 = ["baseball", "soccer", "swim", "basketball"];
$sports2 = ["rugby", "judo", "soccer", "basketball"];

//$sports1を基準にして$sports2と比較する
$result = array_diff($sports1, $sports2);

//結果を出力
var_dump($result);
このコードの実行結果はこちら
array(2) {
  [0]=>
  string(8) "baseball"
  [2]=>
  string(4) "swim"
}

$sports1と$sports2の配列を値で比較した結果、異なるものだけ取得することができました!

3. 配列のキー(添字)で比較する

array_diff_key

<?php

$fruits1 = ["apple" => 1, "banana" => 2, "orange" => 3, "melon" => 4];
$fruits2 = ["cherry" => 5, "banana" => 6, "orange" => 7, "peach" => 8];

//$fruits1を基準にして$fruits2と比較する
$result = array_diff_key($fruits1, $fruits2);

//結果を出力
var_dump($result);

array(2) {
  ["apple"]=>
  int(1)
  ["melon"]=>
  int(4)
}

$fruits1と$fruits2の配列をキーで比較した結果、異なるものだけ取得することができました!