На странице произошла ошибка #S51. Свяжитесь с вебмастером.На странице произошла ошибка #S51. Свяжитесь с вебмастером.На странице произошла ошибка #S51. Свяжитесь с вебмастером. PHP 5.6 и PHP 7 на русском: (none)

array_udiff_uassoc

(PHP 5)

array_udiff_uassoc — Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов функцию обратного вызова

Описание

array array_udiff_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func , callback $key_compare_func )

array_udiff_uassoc() возвращает array, все значения параметра array1 , отсутствующие в последующих аргументах. Обратите внимание, что для сравнения используются ключи, в отличие от array_diff() и array_udiff(). Сравнение значений массива происходит при помощи определённой пользователем функции обратного вызова: data_compare_func . В этом смысле поведение отличается от поведения array_diff_assoc(), использующей для сравнения внутреннюю функцию. Сравнение ключей (индексов) происходит также при помощи определённой пользователем функции обратного вызова key_compare_func . Это поведение отлично от поведения array_udiff_assoc(), которая использует для сравнения ключей встроенную функцию.

Пример #1 Пример использованияarray_udiff_uassoc()

<?php
class cr {
    private 
$priv_member;
    function 
cr($val
    {
        
$this->priv_member $val;
    }

    function 
comp_func_cr($a$b
    {
        if (
$a->priv_member === $b->priv_member) return 0;
        return (
$a->priv_member $b->priv_member)? 1:-1;
    }
    
    function 
comp_func_key($a$b
    {
        if (
$a === $b) return 0;
        return (
$a $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff_uassoc($a$b, array("cr""comp_func_cr"), array("cr""comp_func_key"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

В вышеприведённом примере вы можете видеть, что пара "1" => new cr(4) присутствует в обоих массивах и поэтому отсутствует в выводе функции. Держите в уме, что вы можете использовать две функции обратного вызова.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

См. также array_diff(), array_diff_assoc(), array_diff_uassoc(), array_udiff(), array_udiff_assoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() и array_uintersect_uassoc().

Коментарии

This functionality is now implemented in the PEAR package PHP_Compat.

More information about using this function without upgrading your version of PHP can be found on the below link:

http://pear.php.net/package/PHP_Compat
2004-05-29 01:06:36
http://php5.kiev.ua/manual/ru/function.array-udiff-uassoc.html

    Поддержать сайт на родительском проекте КГБ