PHPの「配列同士を比較して存在しないものだけ取得する方法」についてざっくり解説します。
詳細はPHPマニュアルを確認してください。
array_diff() / array_diff_key()
サンプルコード上に出てくるvar_dumpの使い方はこちらの記事を参考にしてください!
https://akeoblog.com/vardump/目次
1. array_diff() / array_diff_key()
書き方
array_diff(①, ②)
array_diff_key(①, ②)
- 比較元の配列
- 比較対象配列
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の配列をキーで比較した結果、異なるものだけ取得することができました!