PHP数组_udiff()未按预期工作
我试图用另一个数组的前三个字段检查数组的前三个字段,以获得唯一值。(假设由三列组成的主键想要添加表中不存在的行) 这是到目前为止我的代码PHP数组_udiff()未按预期工作,php,Php,我试图用另一个数组的前三个字段检查数组的前三个字段,以获得唯一值。(假设由三列组成的主键想要添加表中不存在的行) 这是到目前为止我的代码 function udiffanswers($a, $b) { if ($a['aid']==$b['aid'] && $a['qid']==$b['qid'] && $a['sid']==$b['sid']){ return 0 } else { return -1
function udiffanswers($a, $b) {
if ($a['aid']==$b['aid'] && $a['qid']==$b['qid'] && $a['sid']==$b['sid']){
return 0
} else {
return -1
}
}
我的一个数组x具有值(459458,0461541),而我的另一个数组y具有相同的值,并且没有正确地排除它。此外,如果y具有值(459458,1461541),则不应排除它,因为它作为一个整体是唯一的
示例数据将是$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
)
[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] =>
)
$b
已
[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
)
[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
返回数组[2]
,但它也返回重复的数组从数组中切片前三个元素并比较它们
$newA = array_splice($a,0,3);
$newB = array_splice($b,0,3);
print_r(array_diff_assoc($newA, $newB));
请发布您的示例数据和所需结果返回($a['aid']-$b['aid'])&&($a['qid']-$b['qid'])&($a['sid']-$b['sid']);将返回TRUE或FALSE。在上面发布了一些示例数据