配列の差分を取得するarray_diff()
データベースの情報が変更されたかどうかが知りたい。
変更前と、変更後のデータの差を見つけて処理を行うにはどうすればよいかと悩んでいましたが、よい関数を見つけました。
array_diff()で配列の差分を取得
結論は、変更前をsessionに格納し、変更後(postされたほう)の2つをarray_diff()でデータを比べればよい。
$array1 = array('aa','bb','cc','dd','ee','ff','gg'); $array2 = array('aa','cc','ddd','ee','fff','gg'); $hoge = array_diff( $array1 , $array2 ); print_r($hoge);
出力結果は以下。
Array ( [2] => ddd [4] => fff )
このように、差分のみが配列となって結果が返ってきます。
注意点:連想配列は空になる
この便利なarray_diff()ですが、連想配列は差分が取得できないようです。この点だけ注意が必要です。