php - 改变数组顺序的数组的递归差分
问题描述
我知道这里有很多类似的问题,但我真的认为这个问题与其他问题不同。我有2个这样的数组:
阵列 1
Array
(
[0] => Array
(
[name] => aaaa
[projectId] => 0
[area] => AreaX
)
[1] => Array
(
[name] => cccc
[projectId] => 2
[area] =>
)
)
阵列 2
Array
(
[0] => Array
(
[name] => cccc
[projectId] => 1
[area] =>
)
[1] => Array
(
[name] => aaaa
[projectId] => 0
[area] => AreaX
)
)
我需要的
Array
(
[1] => Array
(
[projectId] => 2
)
)
我阅读并测试了许多类似问题的建议,但它们都返回整个数组或完全不同的东西。我尝试过的一些相关功能:1 , 2 , 3 , 4 , 5 , 6 , 7。我意识到主要问题与数组的位置有关。当我重新排列它们时,功能可以完美运行(我目前使用的是数字 3),但是我在这里的情况不允许这种重组。
解决方案
您可以通过使用array_diff
,array_column
和来实现array_map
:
$col = "projectId";
$res = array_diff(array_column($a, $col), array_column($b, $col));
$res = array_map(function($id) use ($col) {return [$col => $id];}, $res);
参考:array-diff,array-column,array_map
现场示例:3v4l
推荐阅读
- swift - DispatchGroup 做、尝试、抓住?
- pandas - AttributeError:“系列”对象没有属性“to_numeric”
- assembly - 有没有办法将 FF 的十六进制值存储在 LC3 的寄存器中
- javascript - 合并字符串中的重复项并用逗号附加值
- java - 如何在微服务架构中使用 feign 客户端上传多个 Multipart 文件
- matlab - Matlab执行UNIX命令在较新版本中不起作用
- php - 单击导航链接时如何使用 div 淡入和淡出页面
- dhcp - 在 LAN 上使用 machinectl 作为容器管理器
- php - PHP 准备对象查询不返回任何数据
- c# - 更新状态条标签异步/等待