繁体   English   中英

通过特定键找到两个多维关联数组之间的区别?

[英]Find difference between two multidimensional associative array by a specific key?

我正在尝试不使用嵌套循环来完成此操作。 我有以下2个数组:

$arr1 = array(
   0 => array(
      "key" => 1,
      "value" => "Test 1"
   ),
   1 => array(
      "key" => 35
      "value" => "Test 2"
   )
   ...
);

$arr2 = array(
   0 => array(
      "key" => 1,
      "value" => "Test 1"
   )
   ...
);

print_r(array_diff_magic($arr1, $arr2));

返回通过比较子数组的“键”值从数组2中删除的数组1中的所有项目。 无法使用array_diff_keys,因为需要比较子数组的“键”而不是主数组的键。 输出应该是这样的:

array(1) {
  [0] => array(2) {
     ["key"] => 35,
     ["value"] => "Test 2"
  }
}

有没有一种方法可以不使用嵌套的foreach循环?

尝试使用array_udiff获得差异,然后使用array_values在0处开始生成数组的索引:

$arr3 = array_values(array_udiff($arr1, $arr2, function($a, $b) {
    return $a['key'] - $b['key'];
}));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM