我在这里阅读了一些教程,但没有一篇能够归还我需要的内容。我有两个阵列。
$arrayA = array(1960,1961,1963,1962,1954,1953,1957,1956,1955);
$arrayB = array(1949,1960,1961,1963,1962,1954,1953,1957,1956,1955);
但是,当我运行array_diff时,它返回一个空数组。
$diff = array_diff($arrayA, $arrayB);
但我希望它能在1949年返回。我的代码中出现了什么错误?
编辑:因为切换变量不起作用,我为3个数组(A,B和diff)做了var_dump,这里是pastebin http://pastebin.com/tn1dvCs3
答案 0 :(得分:6)
array_diff
的工作原理是根据documentation查找第一个数组中不在第二个数组中的元素。尝试颠倒你的电话:
$diff = array_diff($arrayB, $arrayA);
为了看到这一点,让我们看一个更易于管理但同等的例子:
$arrayA = array(1960);
$arrayB = array(1949,1960);
$diff = array_diff($arrayB, $arrayA);
var_dump($diff);
这会产生:
[mylogin@aserver ~]$ vim test.php
[mylogin@aserver ~]$ php test.php
array(1) {
[0]=>
int(1949)
}
请注意,这使用了您尝试获得的功能的最小示例示例。通过在实际实现中丢弃不必要的数据,您可以更快地了解您遇到的问题。
答案 1 :(得分:2)
返回一个数组,其中包含array1中任何其他任何数组中都不存在的条目。
因此:
$diff = array_diff($arrayB, $arrayA);
会给你你想要的结果。
答案 2 :(得分:1)
在array_diff
调用中交换变量:
<?php
$arrayA = array(1960,1961,1963,1962,1954,1953,1957,1956,1955);
$arrayB = array(1949,1960,1961,1963,1962,1954,1953,1957,1956,1955);
$diff = array_diff($arrayB, $arrayA);
var_dump($diff);
?>
节目:
array(1) { [0]=> int(1949) }
答案 3 :(得分:1)
提供,
$diff = array_diff($arrayB, $arrayA);
要获得1949
的结果,即元素$arrayB
有,$arrayA
没有。
即
$arrayA = array(1960,1961,1963,1962,1954,1953,1957,1956,1955);
$arrayB = array(1949,1960,1961,1963,1962,1954,1953,1957,1956,1955);
$diff = array_diff($arrayB, $arrayA);
print_r($diff );
答案 4 :(得分:0)
您可以在此处阅读文档http://php.net/manual/pt_BR/function.array-diff.php
$diff = array_diff($arrayB, $arrayA);
print_r($diff);
答案 5 :(得分:0)
$a = '5,6,';
$b = '6,6,';
$a_array = explode(',',$a);
$b_array = explode(',',$b);
$result = array_diff($b_array,$a_array);
var_dump($result);
但是,当我运行array_diff时,它将返回一个空数组。
$result = array_diff($b_array,$a_array);
但是我希望它返回6。我的代码有什么错误?