3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array1 = [1, 3, 3, 3, 4, 7, 7, 8, 8]; $array2 = [0, 3, 3, 4, 4, 9, 9, 9]; $counts1 = array_count_values($array1); $counts2 = array_count_values($array2); $keepFrom1 = array_keys( array_filter( $counts1, fn($count, $number) => ($counts2[$number] ?? 0) <= $count, ARRAY_FILTER_USE_BOTH ) ); var_export( array_merge( array_intersect($array1, $keepFrom1), array_diff($array2, $keepFrom1) ) );

preferences:
27.78 ms | 410 KiB | 5 Q