PHP:查找数组值的差异
PHP:查找数组值的差异
我有两个非常大的数组,其中包含电子邮件地址。
$oldmail
和$newmail
。
两个数组的格式如下:
[0] => some@email.com [1] => some1@email.com [2] => some2@email.com ...
我想找到$newmail
中所有在$oldmail
中不存在的电子邮件值。
我认为以下代码可以实现:
foreach ($oldmail as $key => $value) { foreach ($newmail as $key2 => $value2) { if ($value == $value2) { //什么都不做 } else { echo $value2; } } }
但是对于大列表来说,这样做的资源消耗太大。
有没有其他更高效的方法可以实现这个功能?
PHP: 寻找数组值的差异
问题原因:在PHP中,当我们需要找到两个数组之间值的差异时,使用`array_diff()`函数是一种常见的方法。在上述代码示例中,我们有两个数组`$a1`和`$a2`,我们想要找到`$a1`中与`$a2`不同的值。
解决方法:为了解决这个问题,我们使用了`array_diff()`函数,该函数接受两个数组作为参数,并返回一个新数组,其中包含在第一个数组中但不在第二个数组中的值。在本例中,`$result`数组将包含`$a1`中不与`$a2`相同的值。
下面是代码示例:
以上代码将输出:
Array ( [3] => yellow )
这是因为`$a1`数组中的`"yellow"`值不在`$a2`数组中。
使用`array_diff()`函数可以方便地找到两个数组之间值的差异,这在处理数组操作时非常有用。
PHP中的array_diff函数用于找到两个数组之间的差异。该函数返回在第一个数组中存在但在第二个数组中不存在的值。
在上述示例中,我们有两个数组$a1和$a2。我们使用array_diff函数比较这两个数组,并将结果存储在$result中。然后,我们使用print_r函数打印出$result的内容。
输出结果为Array([1] => some2.com),表示在$a2数组中存在的值,但在$a1数组中不存在。
关于为什么有人会复制其他答案的问题,有人指出这段代码只是从官方PHP手册中array_diff的条目中复制过来的。可能是两个人都从官方手册中复制了这段代码。
要解决这个问题,可以尝试以下方法:
1. 检查官方PHP手册中array_diff函数的用法和示例,确保代码是正确的。
2. 确保数组的值是正确的,如果数组中的值不匹配,可能会导致结果不符合预期。
3. 确保代码中没有其他错误或语法问题,可以尝试使用其他调试工具或方法来检查代码中是否存在问题。
希望以上信息对您有帮助!