比较两个多维数组然后创建唯一的数组

Rya*_*yan 7 php arrays unique multidimensional-array

我一直在试着这几个小时.

我有两个多维数组

    $newData (
    [0] => Array(
        [id] => 1
        [name] => John
        [sex] => male
    )
    [1] => Array(
        [id] => 2
        [name] => Kenny
        [sex] => male
    )
    [2] => Array(
        [id] => 3
        [name] => Sarah
        [sex] => female
    )
    [3] => Array(
        [id] => 4
        [name] => George
        [sex] => male
    )
)

$oldData (
    [0] => Array(
        [id] => 3
        [name] => Sarah
        [sex] => female
    )
    [1] => Array(
        [id] => 4
        [name] => George
        [sex] => male
    )
    [2] => Array(
        [id] => 5
        [name] => Peter
        [sex] => male
    )
    [3] => Array(
        [id] => 6
        [name] => Lexi
        [sex] => female
    )
)
Run Code Online (Sandbox Code Playgroud)

我需要比较$ newData和$ oldData并仅获取第一个公共数组之前的新数据.

我的$ newData将是:

$newData (
[0] => Array(
    [id] => 1
    [name] => John
    [sex] => male
)
[1] => Array(
    [id] => 2
    [name] => Kenny
    [sex] => male
)
Run Code Online (Sandbox Code Playgroud)

)

我已尝试过array_unique中的所有内容,如果比较ID键但没有任何工作正常.

我需要首先合并它们吗?映射他们?呸,我不知道,我迷失了.

任何帮助都是极好的

Max*_*rev 7

我会做一个嵌套的foreach循环.我不知道你正在使用哪种编程语言,但假设它是PHP($):

$tmpArray = array();

foreach($newData as $data1) {

  $duplicate = false;
  foreach($oldData as $data2) {
    if($data1['id'] === $data2['id'] && $data1['name'] === $data2['name'] && $data1['sex'] === $data2['sex']) $duplicate = true;
  }

  if($duplicate === false) $tmpArray[] = $data1;
}
Run Code Online (Sandbox Code Playgroud)

然后,您在$tmpArray变量中拥有所需的数组.你当然可以做到$newData = $tmpArray;.