array_diffВычисляет расхождение массивов
&reftitle.description;
arrayarray_diffarrayarrayarrayarrays
Сравнивает массив, переданный в параметр array, с одним или несколькими другими массивами
и возвращает значения из массива array, которые отсутствуют
во всех других массивах.
&reftitle.parameters;
array
Исходный массив
arrays
Массивы, с которыми идёт сравнение
&reftitle.returnvalues;
Возвращает массив (array), содержащий те элементы
массива array, которых нет в любом другом
массиве.
Ключи в массиве array сохраняются.
&reftitle.changelog;
&Version;&Description;
&array.changelog.require-only-one;
&reftitle.examples;
Пример использования array_diff
"green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>
]]>
Множественные совпадения в $array1 обрабатываются
как одно. Результат будет следующим:
blue
)
]]>
Пример использования array_diff с несовпадающими типами
Два элемента считаются равными тогда и только тогда, когда
(string) $elem1 === (string) $elem2. То есть,
когда строковое представление одинаково.
v = $v;
}
public function __toString() {
return $this->v;
}
}
$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];
$result = array_diff($source, $filter);
// $result теперь содержит один экземпляр S('a');
?>
]]>
Чтобы использовать альтернативную функцию сравнения, смотрите array_udiff.
&reftitle.notes;
Обратите внимание, что эта функция обрабатывает только одно измерение
n-размерного массива. Естественно, вы можете обрабатывать и более
глубокие уровни вложенности, например, используя
array_diff($array1[0], $array2[0]);.
&reftitle.seealso;
array_diff_assocarray_udiffarray_intersectarray_intersect_assoc