我已经尝试了好几个小时了。
我有两个多维数组
$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
)
)
我需要比较 $newData 和 $oldData 并只获取第一个公共(public)数组之前的新数据。
我的 $newData 将是:
$newData (
[0] => Array(
[id] => 1
[name] => John
[sex] => male
)
[1] => Array(
[id] => 2
[name] => Kenny
[sex] => male
)
)
如果比较 ID 键,我已经尝试了 array_unique 中的所有方法,但没有任何工作正常。
我需要先合并它们吗?映射他们?呸,我不知道,我迷路了。
任何帮助都会很棒
最佳答案
我只想做一个嵌套的 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;
}
然后您在 $tmpArray
变量中有了所需的数组。您当然可以在之后制作 $newData = $tmpArray;
。
关于php - 比较两个多维数组然后创建唯一的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135311/