我已经在这里阅读了一些教程,但是没有一个返回我需要的东西。我有两个数组。
$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。我的代码有什么错误?
答案 0 :(得分:1)
这是因为您正在将b与a进行比较。 b数组不包含与a中的元素不同的元素。没有将所有相似的元素与相似位置的元素进行比较。将它们与相反数组中的所有元素进行比较。如果将a与b进行比较,则将在结果数组中返回5值,因为b中没有元素包含5。但是,当将b与a进行比较时,每个6在a中都找到了一对,因此没有区别。 >
$a = '5,6,';
$b = '6,6,';
$a_array = explode(',',$a);
$b_array = explode(',',$b);
$result = array_diff($a_array,$b_array);
var_dump($result);
答案 1 :(得分:0)
array_diff()不能像这样工作。
array_diff($ b_array,$ a_array)将返回一个数组,其中包含在$ b_array中但在$ a_array中不存在的条目。
因此,在您的情况下,它将检查$ a_array是否包含'6'两次(因为$ b_array将具有两个'6'),并且每次都会发现$ a_array包含'6'因此返回空数组。