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
)
]]>
Функция считает элементы равными, только если равны
строковые представления значений:
(string) $elem1 === (string) $elem2.
Пример сравнения массивов с несовпадающими типами функцией array_diff
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);
var_dump($result);
]]>
Функция array_udiff сравнивает массивы альтернативным способом.
&reftitle.notes;
Функция проверяет только один уровень вложенности
n-мерного массива. Более глубокие уровни вложенности сравнивают так:
array_diff($array1[0], $array2[0]);.
&reftitle.seealso;
array_diff_assocarray_udiffarray_intersectarray_intersect_assoc