如果数组中的某些字符串相似,我如何比较两个数组


How can I compare two arrays if inside the arrays some strings are similar?

我只想比较两个字符串

$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,这样您将比较数组元素及其索引分配。