如果在数组内部某些字符串相似,我如何比较两个数组?

时间:2015-11-12 12:47:23

标签: php arrays

我只是想比较两个字符串

$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"
}

我发现这种情况正在发生,因为我有两个相似的字符串。因此,如果每个字符串都是唯一的,则没有问题。但我有时在我的数组中也有类似的字符串。你能帮我解决这个问题吗?

2 个答案:

答案 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',
)

请参阅array_diff_assoc

答案 1 :(得分:1)

您的结果为空,因为$orginal数组中的所有元素都存在于您要与之比较的数组中($new) - 值“6220940”出现在索引3处。

您应该使用array_diff_assoc而不是array_diff,这样您就可以将数组元素与其索引分配进行比较。