我正在寻找一个无错误的代码,用于通过比较两个数组来获取未更改、添加和删除的项目数组。
有没有一种高效的方法可以通过单一方法获得三个数组?
php 或 javascript 都可以使用
最佳答案
PHP 拥有丰富的数组功能,您只需要 array_diff
和 array_intersect
$i = array("k1","k2","k3","k4","k5");
$l = array("k1","k3","k5","k6");
// Removed
$r = array_diff($i, $l);
// Unchanged
$u = array_intersect($i, $l);
// Added
$a = array_diff($l, $i);
var_dump($r, $u, $a);
输出
array (size=2)
1 => string 'k2' (length=2)
3 => string 'k4' (length=2)
array (size=3)
0 => string 'k1' (length=2)
2 => string 'k3' (length=2)
4 => string 'k5' (length=2)
array (size=1)
3 => string 'k6' (length=2)
您可以创建自己的函数
function getSet($l, $r) {
return array("diff" => array_diff($l, $r),"unchanged" => array_intersect($l, $r),"added" => array_diff($r, $l));
}
关于php - javascript或php数组交差法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690326/