English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Основной учебник

PHP Уровень продвинутый

PHP & MySQL

PHP Референс Мануал

Пример использования функции PHP array_diff_assoc()

PHP Масштабные функции

Определение и использование

array_diff_assoc()Функция сравнивает два (или несколько) массива и возвращает разницу.

Эта функция сравнивает ключи и значения двух (или нескольких) массивов и возвращает массив, содержащий элементы array1, которые отсутствуют в array2 или array3, ... и т.д.

Эта функция отличается отarray_diff()функция, так как array_diff() использует только значения для сравнения с другими массивами, аarray_diff_assoc()Функция использует ключи и значения для сравнения с другими массивами.

Синтаксис

array array_diff_assoc(array $array1, array $array2[, array $array3...]);

Параметр

НомерПараметры и описание
1

array1 (обязателен)

Это массив, с которым нужно сравнивать

2

array2 (обязателен)

Это массив, с которым нужно сравнивать

3

array3 (по желанию)

Это массив, с которым нужно сравнивать

Возвратное значение

Функция array_diff_assoc() возвращает массив, который содержит все значения array1, которые не существуют в других массивах с такими же ключами.

Версия PHP

Эта функция была добавлена в PHP earliest в версии 4.3.0.

Онлайн пример

Попробуйте следующий пример. В обоих массивах присутствуют "a" => "orange" и "c" => "banana", поэтому они не будут присутствовать в результате.

<?php
   $input1 = array("a" => "orange", "b" => "mango", "c" => "banana");
   $input2 = array("a" => "orange", "b" => "apple", "c" => "banana");
   print_r(array_diff_assoc($input1, $input2));
?>
Проверим‹/›

Результат вывода:

Массив
(
    [b] => mango
)

Онлайн пример

В этом примере два массива различаются по всем элементам, например, "a" => "orange" не существует во втором массиве, также как и другие пары ключей и значений.

<?php
   $input1 = array("a" => "orange", "b" => "mango", "c" => "banana");
   $input2 = array("a" => "banana", "b" => "apple", "c" => "orange");
   print_r(array_diff_assoc($input1, $input2));
?>
Проверим‹/›

Результат вывода:

Массив
(
    [a] => orange
    [b] => mango
    [c] => banana
)

Онлайн пример

Следующий пример объясняет, что значения视为相等 только в том случае, если (string)$elem1 === (string)$elem2, то есть, только если ключи и значения в паре ключ=значение равны.

<?php
    $input1 = array(0, 5, 20);
    $input2 = array("00", "05", "20");
    $result = array_diff_assoc($input1, $input2);
    print_r($result);
?>
Проверим‹/›

Результат вывода:

Массив
(
    [0] => 0
    [1] => 5
)

PHP Масштабные функции