閲覧数:1219
投稿日:2020-02-18
更新日:2020-02-26
存在している値を比較する
・等しい … trueを返す
・減少
・増加
※キーは関係ない
-----------------------------------
返ってきた後
空の配列をforeachすると、
<?php
foreach(array() as $a) {
print_r('hoge' . PHP_EOL);
}
エラー出力されない。何も出力されない
コード
<?php function diff($data,$post) { $pickAry = array_column($data,"tag_id","id");//DB取得データよりarray(id => tag_id)を抽出 var_export($pickAry); $del = array_diff($pickAry,$post); $ins = array_diff($post,$pickAry); //if(!empty($del)) $del = array_keys($del); //キーを値として取得したい場合に使用。キーは新たに振り直される //if(!empty($ins)) $ins = array_values($ins); //(値を値として取得したい場合に使用。)キーが新たに振り直される if(empty($del)&&empty($ins)) return TRUE; // return array($del,$ins); } //存在している値は等しい、キーは関係ない $dbAry = [ [ 'id' => '2', 'entry_id' => '1', 'tag_id' => '3', ], [ 'id' => '1', 'entry_id' => '1', 'tag_id' => '2', ], ]; $postAry = [ 0 => '3', 1 => '2', ]; var_export(diff($dbAry,$postAry)); //存在している値の増減を返す。キーは関係ない $dbAry = [ [ 'id' => '2', 'entry_id' => '1', 'tag_id' => '3', ], [ 'id' => '1', 'entry_id' => '1', 'tag_id' => '2', ], ]; $postAry = [ 8 => '2', 7 => '9', ]; var_export(diff($dbAry,$postAry));
結果
//存在している値は等しい、キーは関係ない array ( 2 => '3', 1 => '2', ) //一致 true //存在している値の増減を返す。キーは関係ない array ( 2 => '3', 1 => '2', ) //[0]減少分,[1]増加分 array ( 0 => array ( 2 => '3', ), 1 => array ( 7 => '9', ), )