閲覧数:1552
投稿日: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',
),
)