我正在寻找一个无错误的代码,通过比较两个数组来获得不变、添加和删除的项目数组。
有没有使用单一方法获得三个数组的有效方法?
php 或 javascript 都可以使用
我正在寻找一个无错误的代码,通过比较两个数组来获得不变、添加和删除的项目数组。
有没有使用单一方法获得三个数组的有效方法?
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,您可能会使用 array_diff 和 array_intersect,因此在定义它们时使用 I 和 L:
$added = array_diff(L,I);
$removed = array_diff(I,L);
$unchanged = array_intersect(I,L);
您可以根据需要将其打包在一个函数中。