我试图为我的脚本创建一个自定义函数,它检查两个数组的一个索引,并依赖于自定义函数,它返回不在两个数组中的所有行。 当我必须只检查一个值时,它运行良好:
function udifflink($a, $b)
{
return $a['linkid'] - $b['linkid'];
}
//compare links array
$diffinlinks = array_udiff($row, $surveys, 'udifflink');
echo "diff results \n";
print_r($diffinlinks);
但是当我有数组,我需要检查两个字段的组合相等(这是一个主键是两列的数据库表)它不能按预期工作。我尝试了多种解决方案,但这是我最近的解决方案:
function udiffanswers($a, $b)
{
return $a['aid'].$a['sid'] - $b['aid'].$b['sid'];
}
不排除援助和sid相同的地方
//array a
[16] => Array
(
[aid] => 16
[qid] => 16
[sid] => 16
[freetext] => adfadf
[a] => adfadf
[b] => adfadf
[c] => adfadf
[d] => adfadf
[e] => adfadf
[f] => adfadf
[g] => adfadf
[h] => adfadf
[i] => adfadf
[j] => adfadf
[type] => adfadf
[location] => adfadf
)
//array b
[17] => Array
(
[aid] => 16
[qid] => 17
[sid] => 16
[freetext] => adfadf
[a] => adfadf
[b] => adfadf
[c] => adfadf
[d] => adfadf
[e] => adfadf
[f] => adfadf
[g] => adfadf
[h] => adfadf
[i] => adfadf
[j] => adfadf
[type] => adfadf
[location] => adfadf
)
[18] => Array
(
[aid] => 16
[qid] => 18
[sid] => 18
[freetext] => adfadf
[a] => adfadf
[b] => adfadf
[c] => adfadf
[d] => adfadf
[e] => adfadf
[f] => adfadf
[g] => adfadf
[h] => adfadf
[i] => adfadf
[j] => adfadf
[type] => adfadf
[location] => adfadf
)
[19] => Array
(
[aid] => 17
[qid] => 18
[sid] => 16
[freetext] => adfadf
[a] => adfadf
[b] => adfadf
[c] => adfadf
[d] => adfadf
[e] => adfadf
[f] => adfadf
[g] => adfadf
[h] => adfadf
[i] => adfadf
[j] => adfadf
[type] => adfadf
[location] => adfadf
)
应该从上面返回18和19个数组
这是我尝试的其他东西...不确定如何从多个ifs获得结果...
function udiffanswers($a, $b)
{
if($a['aid'] - $b['aid']){
if($a['sid'] - $b['sid']){
return $a;
}
}
return 0;
}