Keep array rows where a column value is found in a second flat array

This whole task can be accomplished with just one slick, native function call — array_uintersect(). Because the two compared parameters in the custom callback may come either input array, try to access from the id column and if there isn’t one declared, then fallback to the parameter’s value. Under the hood, this function performs sorting … Read more

Compare two 2D arrays & get intersection and differences

Convert arrays to a format, where array index is the sight_id: $b1 =array(); foreach($a1 as $x) $b1[$x[‘sight_id’]] = $x[‘location’]; $b2 =array(); foreach($a2 as $x) $b2[$x[‘sight_id’]] = $x[‘location’]; Calculate the differences and intersection: $c_intersect = array_intersect_key($b1,$b2); $c_1 = array_diff_key($b1,$b2); $c_2 = array_diff_key($b2,$b1); Convert arrays back to your format: $intersect_array = array(); foreach($c_intersect as $i=>$v) $intersect_array[] = … Read more