在平面数组中查找具有列值的数组行
在此场景中,您将获得两个数组:一个原始数组 $arr1 ,具有多个列和一个辅助数组 $arr2,其中包含唯一 ID 值的列表。目标是通过仅选择包含 $arr2 中找到的 ID 值的行来优化 $arr1。
此问题的高效解决方案在于利用 array_uintersect() 函数。该函数使用自定义回调来比较两个输入数组中的元素。在此自定义回调中,我们访问“id”列中的值。如果该列不存在,我们将回退到参数的值。
array_uintersect() 在评估期间利用排序技术来优化执行时间。通过比较列值和 ID 值,它可以识别 $arr1 中具有在 $arr2 中找到的 ID 的行。生成的数组将仅包含满足此条件的选定行。
以下是实现此解决方案的代码,供您参考:
var_export( array_uintersect( $arr1, $arr2, fn($a, $b) => ($a['id'] ?? $a) <=> ($b['id'] ?? $b) ) );
以上是如何使用数组函数在平面数组中查找具有列值的数组行?的详细内容。更多信息请关注PHP中文网其他相关文章!