タイトルとおりだが、便利な関数があった。
foreachでぐるぐる回していって、if文で抜き出したい情報抜いてきてたけどコードの行数が長くなっていくのが嫌なのと、ゴチャゴチャロジック考えるのに疲れていた状態だったので「配列と配列比較して、共通項を抜き出すものとかないんか?」とGoogleで検索していたらヒットしたので、やはりみんな欲してるものはだいたいあるんだなーと思った。
array_intersect ( array $array1 , array $array2 [, array $... ] ) : array
array_intersect — 配列の共通項を計算する
https://www.php.net/manual/ja/function.array-intersect.php
array_intersect() は、他の全ての引数に存在するarray1
の値を全て有する配列を返します。 キーと値の関係は維持されることに注意してください。array1
値を調べるもととなる配列。array2
値を比較する対象となる配列。...
さらにそれ以外の配列。
公式の説明みてもピンと来なかったのでとりあえずコード書いて実行。
$arrayName1 = array('hoge' => 'huga', 'hogehoge' => 'hugahuga', 'ge' => 'ho');
$arrayName2 = array('hoge' => 'huga', 'hogehoge' => 'hugahuga', 'ho' => 'ge');
$res = array_intersect($arrayName1, $arrayName2);
print_r($arrayName1);
print_r($arrayName2);
print_r($res);
結果↓
Array
(
[hoge] => huga
[hogehoge] => hugahuga
[ge] => ho
)
Array
(
[hoge] => huga
[hogehoge] => hugahuga
[ho] => ge
)
Array
(
[hoge] => huga
[hogehoge] => hugahuga
)
これだ!!
と思って、実際に必要なコード書いていったら実現できたのでDone。
読むだけだとやはりピンと来ないので、実行しないとわからんよねー、ほんと……。