我只是想比较两个字符串
$result = array_diff($original, $new);
var_dump $ original:
array(4) {
[0]=>
string(4) "8344"
[1]=>
string(4) "7076"
[2]=>
string(7) "6220940"
[3]=>
string(7) "6220940"
}
var_dump $ new:
array(4) {
[0]=>
string(4) "8344"
[1]=>
string(4) "7076"
[2]=>
string(14) "6220940mistake"
[3]=>
string(7) "6220940"
}
var_dump $ result:
array(0) {
}
但我实际上期望的是var_dump $ result:
array(1) {
[2]=>
string(7) "6220940"
}
我发现这种情况正在发生,因为我有两个相似的字符串。因此,如果每个字符串都是唯一的,则没有问题。但我有时在我的数组中也有类似的字符串。你能帮我解决这个问题吗?
答案 0 :(得分:3)
<?php
$a = array("8344", "7076", "6220940", "6220940");
$b = array("8344", "7076", "6220940mistake", "6220940");
var_export(array_diff_assoc($a,$b));
打印
array (
2 => '6220940',
)
答案 1 :(得分:1)
您的结果为空,因为$orginal
数组中的所有元素都存在于您要与之比较的数组中($new
) - 值“6220940”出现在索引3处。
您应该使用array_diff_assoc
而不是array_diff
,这样您就可以将数组元素与其索引分配进行比较。