我需要的是比较两个不同的数组,其中有一个公共键。
我写了一个函数来做我需要的,但我想知道是否有一种最快、更干净的方法来获得相同的结果。
这是我的代码:
数组示例:
第一个阵列:
Array
(
[0] => Array
(
[dafid] => daf_60304
[title] => Hansel & Gretel - Cacciatori di streghe
[creation] => 2018-09-01 00:02:25
)
[1] => Array
(
[dafid] => daf_115
[title] => Il grande Lebowski
[creation] => 2018-09-01 00:02:25
)
[2] => Array
(
[dafid] => daf_238636
[title] => Anarchia - La notte del giudizio
[creation] => 2018-09-01 00:02:25
)
这里是第二个数组:
Array
(
[0] => Array
(
[dafid] => daf_316727
[title] => La notte del giudizio - Election Year
[creation] => 2018-09-01 00:02:25
)
[1] => Array
(
[dafid] => daf_115
[title] => Il grande Lebowski
[creation] => 2018-09-01 00:02:25
)
[2] => Array
(
[dafid] => daf_209112
[title] => Batman v Superman: Dawn of Justice
[creation] => 2018-09-01 00:02:25
)
结果是:
Array
(
[0] => Array
(
[dafid] => daf_60304
[title] => Hansel & Gretel - Cacciatori di streghe
[creation] => 2018-09-01 00:02:25
)
[1] => Array
(
[dafid] => daf_238636
[title] => Anarchia - La notte del giudizio
[creation] => 2018-09-01 00:02:25
)
结果应该是一个没有具有相同 [dafid] 的元素的数组。 我得到了制作这个函数的结果,但我正在寻找一个更干净的解决方案。
function removeAlreadyDAF($array1,$array2) {
$dafNextMovies = $array1;
$dafDB = array2;
foreach ($dafDB as $k => $v) {
//$v['dafid']; //id release
foreach ($dafNextMovies as $key => $value) {
//loop release disponibili
if ($value['dafid'] == $v['dafid']) {
unset($dafNextMovies[$key]);
}
}
}
$dafNextMovies = array_values($dafNextMovies);
return $dafNextMovies;
}
检查此函数: array_udiff
第三个参数 您将如何选择元素 .应该是这样的。评论中有一个示例。检查它(功能compare_names($a,$b((
private function compareData($a, $b) {
return strcmp($a['name'], $b['name']);
}
您可以从数组秒间轻松创建新数组
$result_array = array_intersect_assoc($array1, $array2);
它完全符合您的要求。