我只想比较两个字符串
$result = array_diff($original, $new);
var_dump$原件:
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"
}
我发现这是因为我有两个相似的字符串。因此,如果每个字符串都是唯一的,就没有问题。但我的数组中有时也有类似的字符串。你能帮我解决这个问题吗?
<?php
$a = array("8344", "7076", "6220940", "6220940");
$b = array("8344", "7076", "6220940mistake", "6220940");
var_export(array_diff_assoc($a,$b));
打印
array (
2 => '6220940',
)
请参阅array_diff_assoc
您的结果为空,因为$orginal
数组中的所有元素都存在于要与($new
)进行比较的数组中-值"6220940"存在于索引3中。
您应该使用array_diff_assoc
而不是array_diff
,这样您将比较数组元素及其索引分配。