阵列一:
$arr1 = array(
array("uid" => "cgajate"),
array("uid" => "frankfurt9"),
array("uid" => "ricoetc")
);
阵列二:
$arr2 = array(
array("uxid" => "cgajate"),
array("uxid" => "ricoetc"),
array("uxid" => "ricoetc1"),
array("uxid" => "frankfurt9"),
array("uxid" => "panterafan")
);
我有两个多维数组(正如您在上面看到的,ID不共享相同的键名,uxid vs uid)。我试图在比较'uid'和'uxid'值的基础上找到不匹配的数组,我的预期结果是:
Array
(
[0] => Array
(
[uxid] => ricoetc1
)
[1] => Array
(
[uxid] => panterafan
)
)
下面是我的代码,我试图找到匹配的值,并从结果数组中删除,但当我打印给予我空数组。
$tmpArray = array();
foreach($arr1 as $data1) {
$duplicate = false;
foreach($arr2 as $data2) {
if($data1['uid'] === $data2['uxid']) $duplicate = true;
}
if($duplicate === false) $tmpArray[] = $data1;
}
echo "<pre>", print_r($tmpArray);
2条答案
按热度按时间dxxyhpgq1#
试试这个
h9a6wy2h2#
最优雅的是,反转this answer of mine的功能效果。
代码:(Demo)
由于
$a
和$b
变量可能与任意一个输入数组相关,因此必须尝试访问数组的一个键,然后回退到另一个数组的键。输出:
要重新索引输出,只需在
array_udiff()
的输出上调用array_values()
...如果确实需要的话。