返回一个数组中不存在于另一个数组中的所有值

时间:2019-06-24 07:52:38

标签: php arrays

我有两个看起来像这样的数组:

$has_end_date = ['value123' , 'value132'];
$has_no_end_date = ['value123' , 'value256'];

现在,我希望从$has_no_end_date返回未出现唯一值。

这是我尝试过的:

我试图将两个数组合并在一起,然后找到唯一的值。但这没有用,我将获得两者的独特之处。 我只是从$has_end_date数组中寻找唯一的不同值。

3 个答案:

答案 0 :(得分:3)

您需要使用array_diff()来获取差值,并使用array_unique()返回唯一值。

$difference = array_unique(array_diff($has_no_end_date, $has_end_date));
print_r($difference);

输出:-{https://3v4l.org/3oLHAhttps://3v4l.org/7aEFW

答案 1 :(得分:2)

您可以使用array_diff

$a1 = ['value123' , 'value132'];
$a2 = ['value123' , 'value256'];

$diff = array_diff($a2, $a1);
echo '<pre>';
print_r($diff);

输出:-

Array
(
  [1] => value256
)

答案 2 :(得分:2)

如果要获取数据,可以使用array_diffarray_unique

print_r(array_unique(array_diff($has_no_end_date, $has_end_date)));

Demo