我有 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/