Чтобы найти разницу между уникальными значениями в массиве PHP, вы можете использовать несколько методов. Вот несколько примеров:
-
Использование array_diff() и array_unique():
$array1 = [1, 2, 3, 4, 5]; $array2 = [4, 5, 6, 7, 8]; $uniqueDiff = array_diff(array_unique($array1), array_unique($array2)); print_r($uniqueDiff);Выход:
Array ( [0] => 1 [1] => 2 [2] => 3 )В этом примере
array_unique()используется для удаления повторяющихся значений из каждого массива, а затемarray_diff()сравнивает уникальные значения первого массива с уникальными. значения второго массива, возвращающие разницу. -
Использование array_values() и array_diff():
$array1 = [1, 2, 3, 4, 5]; $array2 = [4, 5, 6, 7, 8]; $uniqueDiff = array_values(array_diff($array1, $array2)); print_r($uniqueDiff);Выход:
Array ( [0] => 1 [1] => 2 [2] => 3 )В этом примере
array_diff()напрямую сравнивает значения первого массива со значениями второго массива, возвращая разницу.array_values()затем используется для числового переиндексирования результирующего массива. -
Использование array_filter() и array_count_values():
$array1 = [1, 2, 3, 4, 5]; $array2 = [4, 5, 6, 7, 8]; $counts = array_count_values(array_merge($array1, $array2)); $uniqueDiff = array_keys(array_filter($counts, function ($value) { return $value === 1; })); print_r($uniqueDiff);Выход:
Array ( [0] => 1 [1] => 2 [2] => 3 )В этом примере
array_merge()объединяет два массива в один. Затемarray_count_values()подсчитывает вхождения каждого значения. Наконец,array_filter()используется для фильтрации значений, которые появляются более одного раза, аarray_keys()извлекает уникальные значения.