Как проверить, чтобы увидеть количество различий между ключами => в массивах с одинаковыми порядками?

0

Например, если у меня есть два массива:

$array1 = array('a', 'b', 'c', 'd');

$array2 = array('a', 'c', 'b', 'd');

Предполагая, что оба массива имеют одинаковые порядки (на основе последних и первых значений), как бы я проверил, чтобы увидеть, что это два различия в их ключевых значениях пар в определенных порядках?

Как и как, как я мог вернуться (возможно, через другую функцию), где именно эти различия есть, по ключевому слову?

  • 0
    Зациклите оба массива и сравните их элементы?
  • 3
    Я думаю, что вы ищете для array_diff_uassoc есть пример того, что вы ищете на этой странице php.net/manual/en/function.array-diff-uassoc.php
Теги:
arrays

1 ответ

1
Лучший ответ

Использование array_diff_assoc() с обратным вызовом даст вам результат разницы, но только с первыми ключами и возвращаемыми значениями массивов. Если вы хотите разделить два массива, измените порядок параметров

$array1 = array('a', 'b', 'c', 'd');

$array2 = array('a', 'c', 'b', 'd');

function key_compare ($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
})

print_r(array_diff_uassoc($array1,$array2, "key_compare");

Результат... Массив ([1] => b [2] => c)

Перевернутый...

print_r(array_diff_uassoc($array2,$array1, "key_compare");

Результат... Массив ([1] => c [2] => b)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню