php - javascript或php数组交差法

标签 php javascript

我正在寻找一个无错误的代码,用于通过比较两个数组来获取未更改、添加和删除的项目数组。

enter image description here

有没有一种高效的方法可以通过单一方法获得三个数组?

php 或 javascript 都可以使用

最佳答案

PHP 拥有丰富的数组功能,您只需要 array_diffarray_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/

相关文章:

javascript - json 数组,数组中返回错误?错误的字符串

php - 我的 php pdo 类执行时间太长

php - 插入html内容到mysql表

javascript - 如何将具有相同属性的对象合并到一个数组中?

javascript - Obout Grid Asp.Net 在添加时禁用文本列

php - 警告:mysqli::__construct(): (HY000/1045): ProxySQL 错误:第 12 行用户 'root' @'2a02:4780:bad:f00d::18'(使用密码:NO)的访问被拒绝

javascript - 如何使 html 页面的一个区域重定向到另一个 url 而页面的其余部分保持不变?

php - Jquery 和 Ajax 中的错误

javascript - 如何在没有视频控件的情况下使用 Dash.js

php - Doctrine2...最佳补水模式?