PHP 找到两个多维数组中的第一个差异

标签 php arrays multidimensional-array

我有 2 个 php 数组,想要比较元素。 示例:

$Array_A[0]["field"]=10; $Array_B[0]["field"]=10;
$Array_A[1]["field"]=20; $Array_B[1]["field"]=30;
$Array_A[2]["field"]=30; $Array_B[2]["field"]=40;
$Array_A[3]["field"]=40;

Array_Difference() should return 20

$Array_A[0]["field"]=10; $Array_B[0]["field"]=10;
$Array_A[1]["field"]=20; $Array_B[1]["field"]=20;
$Array_A[2]["field"]=30; $Array_B[2]["field"]=40;
$Array_A[3]["field"]=40;

Array_Difference() should return 30

对于存在超过 1 个差异的情况,我将循环一个正在查找并返回第一个找到的差异的函数。

执行此任务的“最佳实践”是什么?

最佳答案

您应该将 array_diff() 与 array_column 结合使用。

array_diff(array_column($Array_A, 'field'), array_column($Array_B, 'field'))

array_diff - 返回两个数组之间的差异

array_column - 从多维数组返回一列

如果您只想得到一个结果,则可以使用 array_shift()这将从数组开头获取第一个元素

f.e

$diff = array_diff(array_column($Array_A, 'field'), array_column($Array_B, 'field'));
$firstDifference = array_shift($diff);

关于PHP 找到两个多维数组中的第一个差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49528627/

相关文章:

java - 数组和泛型之间的区别

arrays - 从CSV列表创建数组

php - 如何将多维数组插入数据库?

PHP:如何动态地将多维数组转换为单维

javascript - 在 Jquery 中从 JSON 获取数据

PHP重命名多维数组中的数组键

javascript - php json_encode 创建未转义的换行符

javascript - 将多维数组中的 HTML 表格与数据驱动文档分组

php - 从访问控制列表中排除公共(public)页面

php - 如何在 nextGen (galleryview template) wordpress 插件中增加图像的宽度?