0
我想检查数组的前三个字段与另一个数组的前三个来获取唯一值。 (想想三列组成的主键要添加已经不在表中的行)PHP array_udiff()不能按预期工作
这是我到目前为止的代码
function udiffanswers($a, $b) {
if ($a['aid']==$b['aid'] && $a['qid']==$b['qid'] && $a['sid']==$b['sid']){
return 0
} else {
return -1
}
}
我的一个阵列x具有值(459458,0, 461541)和我的其他y有相同的价值,并没有正确排除它。如果y的值是(459458,1,461541),它也不应该排除它,因为它作为一个整体是唯一的。
样本数据会$a
有
[1] => Array
(
[aid] => 10
[qid] => 10
[sid] => 10
[freetext] => sq file
[a] => hi
[b] =>
[c] =>
[d] =>
[e] =>
[f] =>
[g] =>
[h] =>
[i] =>
[j] =>
[type] => freetext
[location] =>
)
[2] => Array
(
[aid] => 10
[qid] => 1
[sid] => 10
[freetext] => diff
[a] => diff
[b] => diff
[c] => diff
[d] => diff
[e] => diff
[f] => diff
[g] => diff
[h] => diff
[i] => diff
[j] => diff
[type] => diff
[location] => diff
)
$b
有
[23] => Array
(
[aid] => 10
[qid] => 2
[sid] => 10
[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
)
[50] => Array
(
[aid] => 10
[qid] => 10
[sid] => 10
[freetext] => sq file
[a] => hi
[b] =>
[c] =>
[d] =>
[e] =>
[f] =>
[g] =>
[h] =>
[i] =>
[j] =>
[type] => freetext
[location] =>
)
应返回从$a
array[2]
,但它也从你的阵列
请发表您的样本数据和期望的结果 –
回报($ A [ '援助'] - $ B [ '援助'])&&($ A [ 'QID'] - $ B [ 'QID' ]))&&($ a ['sid'] - $ b ['sid']);会返回TRUE或FALSE。 – Jompper
在上面发布了一些示例数据 –