从两个或更多阵列获得罕见值 [英] Get uncommon values from two or more arrays

查看:116
本文介绍了从两个或更多阵列获得罕见值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有任何PHP函数,这将给罕见值的数组由两个或两个以上的阵列?

例如:

  $ ARRAY1 =阵列(绿色,红,蓝);
$数组2 =阵列(绿,黄,红);
....
$结果= Function_Needed($数组1,$数组2,...);
的print_r($结果);

应该给输出:

 阵列(蓝,黄,...);


解决方案

使用 和array_diff array_merge

  $结果= array_merge(和array_diff($数组1,$数组2),和array_diff($数组2,$数组1));

这里有一个演示。

有关多个阵列,具有回调结合起来,并 array_reduce

 函数唯一(放; $ A,$ B){
    返回$一个? array_merge(和array_diff($ A,$ B),和array_diff($ B $ A)):$ B;
}$阵列=阵列(
    阵列('绿','红','蓝'),
    阵列('绿','黄','红')
);$结果= array_reduce($阵列,独一无二);

而这里的那一个演示。

Is there any function in PHP which will give an array of uncommon values from two or more arrays?

For example:

$array1 = array( "green", "red", "blue");
$array2 = array( "green", "yellow", "red");
....
$result = Function_Needed($array1, $array2,...);
print_r($result);

Should give the output:

array("blue", "yellow", ...);

解决方案

Use array_diff and array_merge:

$result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1));

Here's a demo.

For multiple arrays, combine it with a callback and array_reduce:

function unique(&$a, $b) {
    return $a ? array_merge(array_diff($a, $b), array_diff($b, $a)) : $b;
}

$arrays = array(
    array('green', 'red', 'blue'),
    array('green', 'yellow', 'red')
);

$result = array_reduce($arrays, 'unique');

And here's a demo of that.

这篇关于从两个或更多阵列获得罕见值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆