我已经尝试了几个小时了.
我有两个多维数组
$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并仅获取第一个公共数组之前的新数据.
我的$newData将是:
$newData (
[0] => Array(
[id] => 1
[name] => John
[sex] => male
)
[1] => Array(
[id] => 2
[name] => Kenny
[sex] => male
)
)
我已经尝试了array_unique的所有功能,如果比较ID键,但没有任何正常工作.
首先需要合并它们吗?映射他们? Bahh,我不知道,我很失落.
任何帮助都是极好的
解决方法:
我只是做一个嵌套的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,arrays,multidimensional-array,unique
来源: https://codeday.me/bug/20191010/1888050.html